关于正则表达式
>>> p = re.compile('\bclass\b')>>> print(p.search('no class at all'))
None
不明白为何是这个结果
'\bclass\b'我理解的是相当于'clas'
求解 本帖最后由 Twilight6 于 2020-7-5 13:59 编辑
\b 退格符 相当于键盘上的 Backspace 键
所以 '\bclass\b' 相对于在开始时候按一次 Backspace在结尾再次按一次 Backspace
结果就为 'clas' 了~
>>> print('我太丑\b帅了')
我太帅了比如这个例子,就相对于 \b 把丑字删了,果然,这个输出结果我很满意{:10_278:}
Twilight6 发表于 2020-7-5 13:56
\b 退格符 相当于键盘上的 Backspace 键
所以 '\bclass\b' 相对于在开始时候按一次 Backspace ...
不懂搜索结果为何是None
re.search('\bclass\b','no class at all')
相当于re.search('clas','no class at all')? tiger吴 发表于 2020-7-5 14:16
不懂搜索结果为何是None
re.search('\bclass\b','no class at all')
相当于re.search('clas','no class ...
因为匹配过程 \b 也需要匹配只是我们看的时候是不可见的字符 \b ,爬虫也经常有这样的,在网页源码中各种 \t \n
你想匹配到的话,匹配字符也需要对应有 \b:
import re
str0 = 'no \bclass\b at all'
print(re.search('\bclass\b',str0))
需要用原字符串,r'\bclass\b'
>>> p=re.compile(r'\bclass\b')
>>> print(p.search('no class at all'))
<re.Match object; span=(3, 8), match='class'> sunrise085 发表于 2020-7-5 14:55
需要用原字符串,r'\bclass\b'
嗯,故意不放的
页:
[1]