在前面学习过通过集合枚举的功能,把所有需要出现的字符列出来,保存在集合里面,这样正则表达式就可以根据集合里的字符是否存在来判断是否匹配成功,如果在集合里,就匹配成功,否则不成功。现在有一个问题,就是要把集合里列出的字符都不能出现才匹配成功,这个需求怎么样实现呢?其实比较简单,只需要在集合前面添加一个字符^,就让正则表达式匹配时,发现有字符在集合里就匹配不成功。例子如下:
#python 3.6
#蔡军生
#http://blog.csdn.net/caimouse/article/details/51749579
#
from re_test_patterns import test_patterns
test_patterns(
'This is some text -- with punctuation.',
[('[^-. ]+', 'sequences without -, ., or space')],
)
结果输出如下:
'[^-. ]+' (sequences without -, ., or space)
'This is some text -- with punctuation.'
'This'
.....'is'
........'some'
.............'text'
.....................'with'
..........................'punctuation'
在这个例子里,就把划线、句号、空格(-,., ,)等字符排除在外。