这个正则表达式意味着什么?

时间:2009-06-27 21:17:08

标签: regex

^(?!-)[a-z\d\-]{1,100}$

4 个答案:

答案 0 :(得分:7)

以下是使用正则表达式注释模式的解释,因此这个扩展形式本身可以用作正则表达式:

(?x)      # flag to enable comment mode
^         # start of line/string.
(?!-)     # negative lookahead for literal hyphen (-) character, so fails if the next position contains one.
[a-z\d\-] # character class matches a single alpha (a-z), digit (\d) or hyphen (\-).
{1,100}   # match the above [class] upto 100 times, at least once.
$         # end of line/string.

简而言之,它匹配最多100个小写字母数字或连字符,但第一个字符不能是连字符。

可能正在尝试验证序列号或类似号码,但它太笼统而无法确定。


并非所有正则表达式引擎都支持负向前瞻。如果你想弄清楚它正在做什么以适应没有负面前瞻的引擎,你可以使用:

^[a-z\d][a-z\d-]{0,99}$

答案 1 :(得分:4)

(?! - )==否定前瞻

行开头后面没有 - 包含至少1到100个字符,可以是az或0-9或a - 后跟行尾,尽管字符类中的\ d可能是错误的应该用0-9指定,否则az处理'd'字符,取决于正则表达式的风格。

答案 2 :(得分:1)

RegExBuddy很好,但它是一个3个月的'tryware'。

还有一个这样的免费软件 The RegEx Coach

  

Regex Coach是Windows的图形应用程序,可用于以交互方式体验(Perl兼容的)正则表达式。它具有以下特点:

     
      
  • 显示正则表达式是否与特定目标字符串匹配。
  •   
  • 它还可以显示目标字符串的哪些部分对应于捕获的寄存器组或正则表达式的任意部分。
  •   
  • 它可以一次“匹配”目标字符串一个匹配。
  •   
  • 它可以模拟Perl的split和s ///(替换)运算符。
  •   
  • 它试图用简单的英语描述正则表达式。
  •   
  • 它可以显示正则表达式的解析树的图形表示。
  •   
  • 它可以单步执行正则表达式引擎执行的匹配过程。
  •   
  • 一切都在“实时”发生,即只要您在应用程序的某处进行更改,所有其他部分都会立即更新。
  •   

而且,如果你想投入一些钱,你可以通过PayPal捐款。

答案 3 :(得分:0)

一串字母,数字和短划线。 1到100个字符。第一个字符不是破折号。