我试图找出一个正则表达式,匹配任何不以mpeg开头的字符串.对此的一般化是匹配任何不以给定正则表达式开头的字符串.
我试过如下的事情:
[^m][^p][^e][^g].*
Run Code Online (Sandbox Code Playgroud)
这个问题是它要求字符串中至少包含4个字符.我无法找到一种处理这种方法的好方法,也是一种以通用方式处理这种方法的通用方法.
我将在Python中使用它.
Amb*_*ber 28
^(?!mpeg).*
Run Code Online (Sandbox Code Playgroud)
这使用负前瞻来匹配开头不匹配的字符串mpeg
.本质上,它要求"字符串开头的位置不能是一个位置,如果我们开始匹配正则表达式mpeg
,我们就可以成功匹配" - 从而匹配任何不以mpeg开头的东西,并且不匹配任何东西.
但是,我对你正在使用它的上下文感到好奇 - 除了正则表达式之外可能还有其他选择,它们可以更高效或更具可读性,例如......
if not inputstring.startswith("mpeg"):
Run Code Online (Sandbox Code Playgroud)
不要因为正则表达而失去理智.
if len(mystring) >=4 and mystring[:4]=="mpeg":
print "do something"
Run Code Online (Sandbox Code Playgroud)
或者使用带有"not"关键字的startswith()
if len(mystring)>=4 and not mystring.startswith("mpeg")
Run Code Online (Sandbox Code Playgroud)