Python重新搜索示例| Python中的re.search()

Python re.search()是一个内置的regex函数,它在字符串中搜索匹配项,如果存在匹配项,则返回match对象。 如果有多个匹配项,则仅返回匹配项的第一个匹配项。 如果找不到匹配项,则返回值None。

正则表达式(或RE)指定与其匹配的字符串集; re模块中的函数可让您检查特定字符串是否与给定的正则表达式匹配。

句法

re.search(pattern, string)

参量

re.search()函数采用两个必需的参数。

  1. 模式:这是我们必须对照字符串检查的模式。
  2. 字符串:这是我们可以在其中找到模式的字符串。

返回值

如果存在匹配项,搜索功能将返回一个Match对象。

请参阅以下功能。

import re

txt = "Millie Finn Gaten"
sub_str = re.search("s", txt)

print("The first white-space character is located in position:", sub_str.start())

输出量

The first white-space character is located in position: 6

在这个例子中,我们有一个带有Millie Finn Gaten值的初始化txt变量。 请记住,字符串以0索引开头。

现在,我们在字符串中找到第一个空格字符,如果找到,它将返回Match对象。

然后我们在该对象上调用start()方法,它返回该字符的索引。

在我们的示例中,空格字符的位置是6。因此,它返回6。

找不到匹配项

如果找不到匹配项,则返回值None。

import re

txt = "Millie Finn Gaten"
sub_str = re.search("n", txt)

print("The first white-space character is located in position:", sub_str)

输出量

The first white-space character is located in position: None

在此示例中,没有下一行字符,因此它返回None。

Python re.search()与re.match()

Python re.search()和re.match()函数的使用有所不同。 这两个函数都返回字符串中找到的子字符串的第一个匹配项,但是re.match()方法仅在字符串的第一行中搜索,如果找到则返回匹配对象,否则不返回。

但是,如果在字符串的第一行以外的其他其他行中找到子字符串的匹配项(对于多行字符串),则返回None。

尽管re.search()方法搜索整个字符串,即使该字符串包含多行,并尝试在字符串的所有行中查找子字符串的匹配项。

请参见以下代码示例。

import re

Substring = 'lived'


String = '''The boy who lived
          come to die'''

# Use of re.search() Method
print(re.search(Substring, String, re.IGNORECASE))

# Use of re.match() Method
print(re.match(Substring, String, re.IGNORECASE))

输出量


None

re.search()方法将返回匹配对象,并暗示在索引17找到第一个匹配项。

re.match()方法返回None,因为匹配存在于字符串的第二行,而re.match()仅搜索字符串的第一行。

re.IGNORECASE用于忽略字符串中的区分大小写。

re.search()和re.match()方法都仅返回字符串中第一次出现的子字符串,而忽略其他子字符串。

结论

search()方法搜索字符串以查找正则表达式模式产生匹配项的第一个位置,并返回相应的match对象。

如果字符串中没有位置与模式匹配,则返回None。 请注意,这与在字符串中的某个点找到零长度匹配不同。

re.search()函数就是这样。

也可以看看

Python正则表达式replace()

Python正则表达式

Python f字符串

资讯来源:由0x资讯编译自APPDIVIDEND,版权归作者Krunal所有,未经许可,不得转载
你可能还喜欢