re.fullmatch(pattern, string)
函数用于尝试将整个字符串与指定的正则表达式模式匹配,如果匹配成功则返回一个匹配对象,否则返回None。
re.fullmatch.start([group=0])
函数则用于返回指定匹配对象的起始位置。如果没有匹配成功,则会抛出 AttributeError
异常。
import re
pattern = r'\d+'
string = 'hello 123 world'
match_obj = re.fullmatch(pattern, string)
if match_obj:
print("匹配成功!")
print(match_obj.start())
else:
print("匹配失败!")
上述代码将字符串 string
中的连续数字提取出来并存储在名为 match_obj
的匹配对象中。在判断匹配成功后,我们使用 start()
函数来获取数字在字符串中的起始位置。结果会输出 6
,也就是数字 123
在字符串中的起始位置。
再来看一个更为复杂的例子。
import re
pattern = r'(\d+)-(\d+)-(\d+)'
string = '2021-12-31'
match_obj = re.fullmatch(pattern, string)
if match_obj:
print("匹配成功!")
print(match_obj.start())
print(match_obj.start(2))
else:
print("匹配失败!")
上述代码将字符串 string
中的三组数字提取出来存储在名为 match_obj
的匹配对象中。在判断匹配成功后,我们使用 start()
函数获取整个匹配在字符串中的起始位置,结果会输出 0
,也就是整个字符串与正则表达式的匹配起始位置。另外,我们也使用了 start(2)
函数获取第二组数字在字符串中的起始位置,结果会输出 5
,也就是数字 12
在字符串中的起始位置。
通过这两个例子,我们可以看到 re.fullmatch.start()
函数的用法非常简单。只需要将匹配对象传递进去即可返回指定匹配对象的起始位置。
本文链接:http://task.lmcjl.com/news/15403.html