[英]Python regex for matching all strings except a given string
我想要一个正则表达式,它将匹配所有长度大于0( .+
)的字符串,但不匹配字符串: "%"
即长度为1的字符串,其中包含%
。
仅测试一个字符的'%'
字符串会便宜很多 :
if inputstring and inputstring != '%':
不需要正则表达式。 上面的表达式测试字符串是否包含至少一个字符并且不完全等于'%'
。
如果必须使用正则表达式,则将负字符集匹配为长度1 .
对于长度2及以上:
r'^(?:[^%]|.{2,})$'
如果不是 %
,则匹配1个字符;如果字符串的长度为2或更大,则匹配任何字符。
演示:
>>> import re
>>> no_percentage = re.compile(r'^(?:[^%]|.{2,})$')
>>> no_percentage.search('')
>>> no_percentage.search('%')
>>> no_percentage.search('%1')
<_sre.SRE_Match object at 0x10f374370>
>>> no_percentage.search('1')
<_sre.SRE_Match object at 0x10f3743d8>
这个正则表达式应该为您工作r'^([^%] |。{2,})$'
正则表达式的说明
但是话又说回来,平等检查应该更好,更清洁。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.