gpt4 book ai didi

python - 正则表达式 match() 无法捕获 python 中的简单模式

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:52 25 4
gpt4 key购买 nike

我正在尝试在 Python 中使用一些简单的正则表达式函数。我正在使用正则表达式来捕捉阿拉伯字母表中的模式,但在最简单的情况下,当一个人在模式的开头添加几个字母时,无论是否有连字,它似乎都不起作用:

>>> p = re.compile(r'ترينهايمان')
>>> p.match('به ترينهايمان')
>>>


>>> p = re.compile(r'ترینهایمان')
>>> p.match('بهترینهایمان')
>>>

较长的字符串基本上是在开头添加两个字母的模式本身。

据我所知,匹配应该返回一个值,但它没有。

这很奇怪,因为当你在模式的末尾添加一个字母时,它会捕捉到它:

>>> p = re.compile(r'ترينهايمان')
>>> p.match('ترينهايماني')
<_sre.SRE_Match object at 0x02C52FA8>
>>> p.match('بهترينهايمان')
>>>

最佳答案

re.match 将只匹配从字符串开头开始的模式:

re.match(pattern, string, flags=0)

If zero or more characters at the beginning of string match the regular expression pattern, return a corresponding MatchObject instance. Return None if the string does not match the pattern; note that this is different from a zero-length match.

由于您尝试匹配开头有额外字符的字符串,match 不会将该字符串识别为匹配项。您需要改用 re.search

关于python - 正则表达式 match() 无法捕获 python 中的简单模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24771389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com