|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- p=re.compile(r'((?!bat$|exe$).*$)', re.M) #为什么这样写,前向否定断言就不起作用了呢?
- A=p.findall('123.txt\n85.exe\ng9.bat\nasdfi.xyz\nefd')
- >>> A
- ['123.txt', '', '85.exe', '', 'g9.bat', '', 'asdfi.xyz', '', 'efd', '']
- p=re.compile(r'(\w+[.](?!bat$|exe$).*$)', re.M) #这个就没有问题,但本意是“nefd”也要摘出来的。
- A=p.findall('123.txt\n85.exe\ng9.bat\nasdfi.xyz\nefd')
- >>> A
- ['123.txt', 'asdfi.xyz']
复制代码
另,(?!bat$|exe$)中间为什么要用或“|”,否定不是应该用与“&”吗?
- >>> import re
- >>> s='123.txt\n85.exe\ng9.bat\nasdfi.xyz\nefd'
- >>> p=re.compile(r'^(?!.*\.(?:bat|exe)).+', re.M)
- >>> p.findall(s)
- ['123.txt', 'asdfi.xyz', 'efd']
复制代码
|
|