【发布时间】:2016-10-05 13:41:22
【问题描述】:
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("----------")
('开', '') ('', '') ('', '任何') ('', '') ('上', '') ('', '') ('', '任何')
('', '')
开启
任何
开启
任何
已阅读互联网和 S.O. 上的许多文章。我想我还是不明白正则表达式的词边界:\b
第一个正则表达式没有给我预期的结果,我认为它必须给我“ON Any On Any”,但它仍然没有给我。
第二个正则表达式给了我元组,我不知道为什么也不明白: ('', '') 的含义
第三个正则表达式在分隔行和中间的空行上打印结果
请您帮我理解一下。
【问题讨论】:
标签: python regex word-boundary