2010-07-26 15 views
1

好吧我試圖找出這個正則表達式,我有一個單詞,並且它的任一端可以是空格或無字符。這裏有一個例子:PHP的正則表達式,空格或無字符

preg_match_all("/(?)(" . $piece . ")(?)/is", $fk, $sub); 

哪裏(?)是我想要的是「一個字符只能是在所有的空格或任何字符」。我試圖基本上做一個函數,基於它的周圍的字符檢查是否是一個單詞。而$piece就是這個詞,所以如果你知道我的意思,它必須是單獨的,而不是另一個更長的單詞的一部分。由於

+1

也許你正在尋找單詞邊界斷言'\ b'。 – Gumbo 2010-07-26 17:47:12

回答

5

要測試空間或沒有字符,請使用以下語法:

preg_match_all("/(^|)(" . $piece . ")(|$)/is", $fk, $sub);

(^|)意味着:要麼匹配字符串的開頭(所謂的「無字」)或空間。 (|$)表示:匹配空格或字符串結尾(再次,「無字符」)。字符串的開始和結尾是唯一沒有字符的地方。

+0

不會使用\ b會更合適嗎? – 2010-07-26 18:47:17

+1

\ b匹配非單詞字符。他特意要求「無炭」或空間。 \ b匹配例如(既不是。 – jmz 2010-07-27 10:33:49