2014-08-28 204 views
1

我有下面這個表達式匹配,它工作得很好,看起來像這樣正則表達式用破折號

hello/hi 

一個字符串,但失敗如果有一個破折號( - )這樣hello/hi-there

if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches)) 
{ 
    echo 'works'; 
} 

另外,我想它匹配

  1. 個招呼,或者
  2. HEL LO/HI-那裏或
  3. 你好/ HI-有/笑臉

任何想法如何解決這一問題?由於

回答

3

你可以只包括-和空間,在你的正則表達式:

'%^([\w -]+)(/([\w -]+))?$%' 
+0

謝謝,它的工作,但是剛剛更新的問題 – user2636556 2014-08-28 14:14:44

+0

確定的答案更新。 – anubhava 2014-08-28 14:15:28

+1

我懷疑它是否真的有所作爲,但我只是爲了安全而移動'-'來終止:) – 2014-08-28 14:28:19

相關問題