Python – 使用正则表达式匹配包含“g”后跟一个或多个“e”的单词的程序


Python 是数据可视化和深度学习领域最强大的编程语言。正则表达式(也称为正则表达式)是搜索给定文档中任何字符或文本的有效工具。Python 语言为用户提供了从基本计算到复杂计算的多种功能。Python 方法使用各种功能来匹配给定文本中的单词。Python 是一种高级编程语言,也是一种用途广泛的语言,它最受开发人员青睐,并且广泛用于数据分析。

使用正则表达式匹配单词的程序

为了解释这一点,我们可以举一个例子,例如使用一个名为 text 的变量来存储某些值。

Text = “John is a genius at playing football games”。

输出打印为 [genius, game]

正则表达式

  • 字符串开头的 `r` 表示它应该被视为原始输入,因此在编译模式时不会转义特殊字符。

  • `\b` 字符定义单词边界,确保只找到以“g”开头且前面没有字母的完整单词。

  • 出现在空格中的每个 g-单词,其中可能存在多个连续的 e-字符,必须以它们后面提供的另一个边界 \b 字符结尾;所有其他在确定单词模式之间捕获的重复(一个 OK- 零个包含在内)e-字符都已事先计算过,此后仅返回匹配的短语,存储在 matches 对象 format_list 数据类型中。

方法:-

  • 方法 1 - 使用 findall() 函数

  • 方法 2 - 使用 match 函数

  • 方法 3 - 使用 finditer() 函数

方法 1:使用 findall() 函数的 Python 程序来使用正则表达式匹配单词

句子用一组单词初始化,可以使用 findall 方法找到以“g”开头并后跟一个或多个“e”的单词。

算法

  • 步骤 1 - 导入“re”模块以使用正则表达式值

  • 步骤 2 - 将正则表达式存储在名为“pattern”的变量中。

  • 步骤 3 - 使用正则表达式将 findall() 函数定义为两个参数:pattern 和 sentence。

  • 步骤 4 - 最后,打印语句。

示例

#importing the re module
import re
#the input is initialized with a word starting with g and followed by one or two e’s
sentence = "geetanjali, gear, gemma, hello"
#Initializing the variable to store the value
pattern = r'\bg\w*e+\w*\b'
#Using the findall function, to match the pattern with the sentence
matching = re.findall(pattern, sentence)
#The list is returned with the string values
print("Words which are matching from the input:",matching)

输出

Words which are matching from the input: ['geetanjali', 'gear', 'gemma']

方法 2:使用 match() 函数的 Python 程序来使用正则表达式匹配单词

用于查找给定句子中所有单词出现次数的方法是 match() 方法。

算法

  • 步骤 1 - 导入使用正则表达式所需的模块。

  • 步骤 2 - 函数用两个参数定义。

  • 步骤 3 - 当没有匹配项时,它返回空列表。

  • 步骤 4 - 打印最终列表。

示例

#importing the re module
import re
#the input is initialized with word starting with g and followed by one or two e’s
sentence = "geetanjali, gear, gemma, hello"
#Initializing the variable to store the value
pattern = r'\bg\w*e+\w*\b'
#function is defined with two parameters
def matchword(pattern, sentence):
    if not sentence:
        return []
    match = re.match(pattern, sentence)
    if match:
        return [match.group()] + matchword(pattern, sentence[match.end():])
    else:
        return matchword(pattern, sentence[1:])

matching = matchword(pattern, sentence)
#The list is returned with the string values
print("Words which are matching from the input:",matching)

输出

Words which are matching from the input: ['geetanjali', 'gear', 'gemma']

方法 3:使用 finditer() 函数的 Python 程序来使用正则表达式匹配单词

与 findall 方法相比,finditer() 用于打印给定句子中所有以“g”开头并后跟一个或两个“e”的匹配项。

算法

  • 步骤 1 - 导入所需的“re”模块以使用正则表达式值。

  • 步骤 2 - 初始化输入并由各种单词组成。

  • 步骤 3 - 将正则表达式存储在名为“pattern”的变量中。

  • 步骤 4 - 使用正则表达式将 findall() 函数定义为两个参数:pattern 和 sentence。

  • 步骤 5 - 最后,打印语句。

示例

#importing the re module
import re
#the input is initialized with a word starting with g and followed by one or two e’s
sentence = "geek, gear, gemma, hello"
#Initializing the variable to store the value
pattern = r'\bg\w*e+\w*\b'
#Using the finditer function, to match the pattern with the sentence
matches = re.finditer(pattern, sentence)
#for loop is used to iterate through the sentence
for match in matches:
    print(match.group())

输出

geek
gear
gemma

结论

正则表达式的一个常见用途是搜索包含特定字符序列的单词,例如“g”后跟一个或多个“e”。可以使用 Python 及其内置的正则表达式模块轻松匹配此模式。使用各种方法解释了匹配单词出现次数的各种方法。

更新于: 2023年9月4日

61 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告