gpt4 book ai didi

Python 正则表达式未按预期工作

转载 作者:太空狗 更新时间:2023-10-29 22:22:25 24 4
gpt4 key购买 nike

这是我想在 python2.7 上尝试的原始正则表达式

link

在我的 python2.7 命令行中,我的代码

>>> import re
>>> r = r'(\.+)'
>>> str = 'hello... how are you? Im fine...'
>>> type(re.match(r, str, re.I)) # a mismatch
<type 'NoneType'>

我应该做哪些修改才能在 python 上工作?

最佳答案

re.match 尝试在字符串的开头进行匹配。因为它在开始时不匹配,所以 re.match 返回 None 。使用 re.search(返回字符串中任何位置的第一个匹配项)或 re.finditer(返回产生所有匹配项的迭代器):

>>> import re
>>> r = r'(\.+)'
>>> data = 'hello... how are you? Im fine...'
re.match
>>> re.match(r, data, re.I) # None
re.search
>>> m = re.search(r, data, re.I) # a single match
>>> m
<_sre.SRE_Match object at 0x12345678>
>>> m.group(1)
'...'
re.finditer
>>> for m in re.finditer(r, data, re.I): # all matches
... print(m.group(1))

输出
...
...

其他注意事项
  • 不要命名变量 str ,因为它隐藏了一个内置函数。我已将其重命名为 data
  • 此处不需要 re.I(不过我在示例中保留了它),因为 (\.+) 不匹配任何关心大小写的字符(. 不是正确的字母)
  • 关于Python 正则表达式未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25478591/

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