import re
sstring = "ON Any ON Any"
regex1 = re.compile(r''' \bON\bANY\b''', re.VERBOSE)
regex2 = re.compile(r'''\b(ON)?\b(Any)?''', re.VERBOSE)
regex3 = re.compile(r'''\b(?:ON)?\b(?:Any)?''', re.VERBOSE)
for a in regex1.findall(sstring): print(a)
print("----------")
for a in regex2.findall(sstring): print(a)
print("----------")
for a in regex3.findall(sstring): print(a)
print("----------")
('在', '')
('', '')
('', '任何')
('', '')
('在', '')
('', '')
('', '任何')
('', '')
ON
Any
ON
Any
阅读了互联网和 S.O. 上的许多文章。我想我仍然不明白正则表达式单词边界:\b
第一个正则表达式没有给我预期的结果,我认为它必须给我“ON Any On Any”,但它仍然没有给我那个。
第二个正则表达式给了我元组,我不知道为什么或不理解其含义:('', '')
第三个正则表达式在分隔行和中间的空行上打印结果
你能帮助我理解这一点吗?
注意要匹配ON ANY
你需要添加一个转义(因为你正在使用re.VERBOSE
标志)之间的空间ON
and ANY
as \b
字边界being a 零宽度断言
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)