2009-06-27 99 views
-2
^(?!-)[a-z\d\-]{1,100}$ 

回答

4

( - ?!)==負先行

線後面沒有的開始的 - 含有至少1到100個字符,可以是AZ或0-9或 - 後跟的端部該行,儘管字符類中的\ d可能是錯誤的,應該由0-9指定,否則az處理'd'字符,這取決於正則表達式的風格。

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個小寫字母,數字或連字符,但第一個字符不能連字符。

可能試圖驗證序列號或類似的,但它太籠統,不能肯定地說。


並非所有的正則表達式引擎都支持負向lookahead。如果你想弄清楚它是什麼,以便爲無負向前看符號發動機適應這樣做,你可以使用:

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

使用RegexBuddy是好的,但它是3個月的「tryware」。

還有一個這樣的免費軟件,The RegEx Coach

正則表達式教練是用於Windows的圖形應用程序,其可用於與(Perl兼容)定期交互表達式進行試驗。它具有以下功能:

  • 它顯示了正則表達式是否與特定目標字符串匹配。
  • 它還可以顯示目標字符串的哪些部分對應於捕獲的寄存器組或正則表達式的任意部分。
  • 它可以一次「穿過」一個匹配的目標字符串。
  • 它可以模擬Perl的split和s ///(替代)操作符。
  • 它試圖用簡單的英語來描述正則表達式。
  • 它可以顯示正則表達式的分析樹的圖形表示。
  • 它可以單步執行由正則表達式引擎執行的匹配過程。
  • 所有事情都發生在「實時」,即只要您在應用程序的某處進行更改,所有其他部分即刻更新。

而且,您可以通過PayPal捐贈,如果你希望把一些錢。

0

一串字母,數字和破折號。介於1到100個字符之間。第一個字符不是短劃線。

相關問題