2013-10-08 30 views
10

我無法創建一個正則表達式匹配正則表達式匹配slu??

this-is-an-example 

我想出這個正則表達式的URL蛞蝓(基本上,字母「改爲」由破折號分隔):/[a-z0-9\-]+$/,雖然它限制字符串只有字母數字字符和破折號,但仍產生一些誤報這樣的:

-example 
example- 
this-----is---an--example 
- 

我用正則表達式相當糟糕,所以任何幫助,將不勝感激。

+0

什麼編程語言? – zzzzBov

+0

@zzzzBov我正在使用PHP(使用preg_match函數)。 – federicot

回答

37

您可以使用此:

/^ 
    [a-z0-9]+ # One or more repetition of given characters 
    (?:   # A non-capture group. 
    -   # A hyphen 
    [a-z0-9]+ # One or more repetition of given characters 
)*   # Zero or more repetition of previous group 
$/ 

這將匹配:

  1. 字母數字字符開頭的序列。
  2. 然後它會匹配一個連字符,然後匹配一個字母數字字符序列0次或更多次。
+0

太棒了!這工作_almost_,因爲我想要的。你能調整它以匹配一個單詞嗎? (我忘了提及單個詞也被認爲是有效的slu))。 – federicot

+1

@fedeetz:用'*'替換最後一個'+'(0或更多匹配) – anubhava

+0

@fedeetz調整。 –