python 不以特定字符串开头的正则表达

在python3中,我查看了文档,没有发现这个功能,最多是不以某个字符开头的匹配。不过还好最后折腾出来了。

功能就是用或运算将以其他形式开头的全部匹配出来,有点笨重,我这边就两个字符,勉强还算满意

t_list = ['abcabascs','bac','afdsfag','dsafewafs','dsabcadfsad','bsadfdsgwwef','abcdsfda','daseavc']
re_s = r'(ab[^c])|(a[^b]|[^a])' # 匹配 不是 abc 开头的 字符串
for t in t_list:
	m = re.match(re_s,t)
	if m:
		print(t)
		# print(m.groups())

匹配的打印如下:

bac
afdsfag
dsafewafs
dsabcadfsad
bsadfdsgwwef
daseavc

匹配的过程可以打印出来,效果如下:

(None, None, 'b')
(None, 'af', None)
(None, None, 'd')
(None, None, 'd')
(None, None, 'b')
(None, None, 'd')

如果想到更好的方法,欢迎大家留言交流。

你可能感兴趣的:(python)