search()中的正则表达式语法

时间:2019-02-01 20:35:35

标签: python-3.x

这是我的代码,用于在每个元素中匹配9:

import re
list=['guru99 get', 'guru99 give','guru selenium']
for element in list:
    x=re.search(r'\b9',element)
    print(x.group())

...但这显示此错误

print(x.group())
AttributeError: 'NoneType' object has no attribute 'group'

我该如何解决?

1 个答案:

答案 0 :(得分:0)

发生此错误是因为您的search未返回匹配项,因此xNone。根据{{​​3}}:

  

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

您没有匹配项(已经在第一个字符串中),因为您所有的“ 9”都以字母或数字开头,这意味着那些“ 9”不会在字母数字字符链中中断。因此,\b9根本不会出现在您的第一个字符串中。

如果字符串具有“ .9”,“-9”或“ 9”,则将匹配,但是诸如“ u9”或“ 99”之类的序列不匹配。

也许你试图匹配没有被另一个数字前面有一个“9”?然后使用(?<!\d)9作为模式。