所以我正在尝试写一个正则表达式并让它匹配字符串ONLY如果字符串不是以字符串'username'开头
我尝试了类似^([^ username])的内容......但是匹配字符串不以任何字母开头的字符串。
任何帮助将不胜感激!
答案 0 :(得分:6)
^(?!username)
另一种选择,取决于你的行为,只是简单地颠倒你的逻辑。例如,如果你正在做
if foo matches <regex>
然后就这样做
if !(foo matches <regex>)
答案 1 :(得分:2)
如果您使用的是Perl:您可以使用否定绑定运算符:
if($text !~ /^username/) {
# do something
}
答案 2 :(得分:1)
但匹配的字符串 string不以任何一个开头 字母。
这是因为方括号([]
)表示character class而插入符号(^
)否定了字符类。
话虽如此,为什么 使用正则表达式?这可以通过简单的字符串匹配来完成,这通常比正则表达式更快。如果有匹配检查并查看该位置是否不是字符串的开头。您没有指定语言,但大多数都支持这种语言。