正则表达式与python的负匹配
我有一个只允许包含字母、数字、空格和符号“:”的字符串。因此,我编写了以下代码:正则表达式与python的负匹配,python,regex,regex-negation,Python,Regex,Regex Negation,我有一个只允许包含字母、数字、空格和符号“:”的字符串。因此,我编写了以下代码: regex = r'![a-zA-Z0-9\:\ ]+' print re.match(regex, myString) 然而,它似乎不起作用。我尝试了不同的组合r'?!([a-zA-Z0-9\:\])+'和搜索,但似乎不起作用。有任何帮助吗?如果您想要正匹配(有效字符),请使用: r'^[a-zA-Z0-9: ]+$' 如果需要负匹配(字符串是否包含无效字符),则: 要使第一个表达式工作,需要添加如下锚定:r
regex = r'![a-zA-Z0-9\:\ ]+'
print re.match(regex, myString)
然而,它似乎不起作用。我尝试了不同的组合
r'?!([a-zA-Z0-9\:\])+'
和搜索,但似乎不起作用。有任何帮助吗?如果您想要正匹配(有效字符),请使用:
r'^[a-zA-Z0-9: ]+$'
如果需要负匹配(字符串是否包含无效字符),则:
要使第一个表达式工作,需要添加如下锚定:
r'^[a-zA-Z0-9:::+$”
。第二个表达式应该可以正常工作。我使用的是负匹配。它不工作,对于[valid and invalid]字符串,它re.match返回的都是none,它一定是Python的东西。根据文档,match
匹配“字符串开头的零个或多个字符”。尝试search
而不是match
,这样print re.search(regex,myString)
。请参阅文件:+1并接受。在搜索中工作,但我犯了一个错误。我一行一行地阅读文件,我忘了考虑换行符。现在它正在工作。非常感谢。
r'[^a-zA-Z0-9: ]+'