在python中,re.search()检查字符串中任何位置的匹配(这是Perl默认执行的操作).
那么为什么我们在Ex(1)中得到的输出为'ABBbbb',就像我们在下面的Ex(2)和Ex(3)中找到的那样.
实施例(1)
>>> s=re.search(r'(ab*)','aaAaABBbbb',re.I)
>>> print s.group()
a
Run Code Online (Sandbox Code Playgroud)
实施例(2)
>>> s=re.search(r'(ab.*)','aaAaABBbbb',re.I)
>>> print s.group()
ABBbbb
Run Code Online (Sandbox Code Playgroud)
实施例(3)
>>> s=re.search(r'(ab+)','aaAaABBbbb',re.I)
>>> print s.group()
ABBbbb
Run Code Online (Sandbox Code Playgroud) 最近我在使用正则表达式做家务时遇到了以下情况.
s@ubuntu:~$ echo b | egrep []b]
b
s@ubuntu:~$ echo b | egrep [[b]
b
s@ubuntu:~$ echo b | egrep []b[]
b
s@ubuntu:~$ echo b | egrep [b[]
b
s@ubuntu:~$ echo b | egrep [[b]]
s@ubuntu:~$ echo b | egrep [b]]
s@ubuntu:~$ echo b | egrep [b\]]
s@ubuntu:~$ echo b | egrep [b\\]]
s@ubuntu:~$ echo b | egrep [\[b\]]
Run Code Online (Sandbox Code Playgroud)
为什么我在最后5个案例中没有打印'b'?