Python – 使用正则表达式匹配包含g后跟一个或多个e的单词的程序
Python是在数据可视化和深度学习领域工作最强大的编程语言。正则表达式也被称为正规表达式,它是在给定文档中搜索任何字符或文本的有效工具。Python语言提供了多种功能,用于在给定文本中匹配单词。Python是一种高级且多功能的编程语言,广受开发人员的喜爱,也被广泛用于数据分析。
使用正则表达式匹配单词的程序
为了解释这一点,可以举一个例子,比如创建一个名为text的变量,并给它赋予某些值。
Text = "John is a genius at playing football games".
结果打印为[genius, game]
正则表达式
- 字符串开头的
r
表示它应该被处理为原始输入,因此在编译模式时不会对特殊字符进行转义。 -
\b
字符定义了单词边界,确保只能定位到以字母”g”为前导且无字母的完整单词。 -
出现在可能存在多个连续e字符的空格中的每个g单词必须以在它们之后提供的另一个边界\b字符结尾;在存储为matches对象的格式列表中预先计算了所有其他重复的(一个OK-包括零)e字符,然后仅返回匹配的短语。
方法:-
-
方法1 – 使用findall()函数
-
方法2 – 使用match函数
-
方法3 – 使用finditer()函数
方法1: 使用正则表达式匹配单词的Python程序,借助findall()函数
句子使用一组单词进行初始化,可以使用findall方法找到以g开头并跟随一个或多个e的单词。
算法
- 步骤1 - 导入”re”模块以使用正则表达式值
-
步骤2 - 将正则表达式存储在名为”pattern”的变量中。
-
步骤3 - 使用正则表达式,将findall()函数定义为带有两个参数的函数,即模式和句子。
-
步骤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']
方法二:使用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及其内置的正则表达式模块进行匹配。使用各种方法来匹配单词的出现次数的不同方法进行了解释。