代码之家  ›  专栏  ›  技术社区  ›  onassar

与字符串不以“username”开头的字符串匹配的正则表达式

  •  1
  • onassar  · 技术社区  · 16 年前

    所以我要写一个regex,让它只在字符串不是以字符串'username'开头时匹配字符串

    我尝试过类似^([^username])…但这与字符串匹配,其中字符串不以任何这些字母开头。

    任何帮助都将不胜感激!

    3 回复  |  直到 16 年前
        1
  •  6
  •   Amber    16 年前
    ^(?!username)
    

    使用A negative lookahead .

    另一种选择,取决于你所做的,就是简单地颠倒你的逻辑。例如,如果你在做

    if foo matches <regex>
    

    然后就做

    if !(foo matches <regex>)
    
        2
  •  2
  •   polemon    16 年前

    在使用perl的情况下:可以使用负绑定操作符:

    if($text !~ /^username/) {
        # do something
    }
    
        3
  •  1
  •   NullUserException Mark Roddy    16 年前

    但这与字符串匹配 字符串不能以任何一个开头 信件。

    那是因为方括号( [] 表示一个 character class 和插入符号(插入符号) ^ )否定字符类。

    那就是说,你为什么 有 使用正则表达式?这可以通过简单的字符串匹配来完成,这通常比regex快。如果有匹配检查,并查看位置是否不是字符串的开头。您没有指定语言,但大多数语言都支持这一点。