正则表达式 (?:pattern )解释
当使用re.findall(pattern ,s)时候
如果在表达式中包含有() ,则只会输出括号里面的内容,如何既使用() 又不会只返回括号里面的内容呢?
大侠,在这里隆重推荐 (?: )这种方法来代替 ()。
---------------------------------------------大侠专用分隔符-----------------------------------------|0|
下面看案例:
import re
"""
Tips:
#1 re.findall(pattern,string) 选取所有合适的条目,如果用了括号,则只显示括号内部的
如果不想只显示部分 可用(?:pattern)来代替(pattern)
"""
s=" industries industry industry industries industriea industrie4 "
pattern1=re.compile('industr(?:y|ies)',flags=re.M)
pattern2=re.compile('industr(y|ies)',flags=re.M)
res1=re.findall(pattern1,s)
res2=re.findall(pattern2,s)
print(res1)
print(res2)
以上代码,运行结果是:
['industries', 'industry', 'industry', 'industries']
['ies', 'y', 'y', 'ies']
[Finished in 0.0s]
---------------------------------------------大侠专用分隔符-----------------------------------------|0|
到此,各位少侠的(?:pattern)就介绍到这里。
代码江湖漫漫,少侠下期再见!