Python re.match 和 re.search 方法
- 正文
- re.match() 方法
- 示例一
- 示例二
- re.search()
- 示例一
- 示例二
正文
re.match() 方法
调用方法:
re.match(pattern, string, flags=0)
用法说明:
该函数在字符串的起始位置处进行匹配,若匹配到则返回该值,若没有匹配到,则返回None
。可以匹配到,但是不在字符串的起始位置,仍旧会返回None
。代码如下:
示例一
import restr1 = "I want to be a scientist"
pattern = "I"
result = re.match(pattern, str1)
print(result)
"""
result:
<re.Match object; span=(0, 1), match='I'>
"""
可以看到,我们成功地在字符串起始位置处匹配到了字符I
。
示例二
import restr1 = "I want to be a scientist"
pattern = "to"
result = re.match(pattern, str1)
print(result)
"""
result:
None
"""
当我们把pattern
换为to
时,即使需要被匹配的字符串中含有to
,但是有于to
并不处于被匹配字符串的起始位置,因此匹配不到,所以返回值为None
。
re.search()
调用方法:
re.search(pattern, string, flags=0)
用法说明:
扫描整个 字符串,找到匹配样式的第一个位置,并返回一个相应的 匹配对象。如果没有匹配,就返回一个None
。 注意这和找到一个零长度匹配是不同的。
示例一
import restr1 = "I want to be a scientist"
pattern = "to"
result = re.search(pattern, str1)
print(result)
"""
reuslt:
<re.Match object; span=(7, 9), match='to'>
"""
可以看到,之前我们使用re.match()
函数时没有能够匹配到to
,当我们使用re.search()
函数时我们成功地匹配到了字符to
。可以说,re.search()
函数的功能是包含re.match()
函数的。因此在实际应用时,推荐使用re.search()
函数。
示例二
import restr1 = "I am I, I am the colorful firework in the sky"
pattern = "I"
result = re.search(pattern, str1)
print(result)
"""
result:
<re.Match object; span=(0, 1), match='I'>
"""
当我们匹配字符I
时,会匹配到从左向右的第一个字符对象I
。这与re.serach()
函数的用法说明一致。
如果大家觉得有用,就点个赞让更多的人看到吧~