2012-08-01 73 views
2

我想匹配和html中的字符。有三種類型ANDS的:PHP的正則表達式:匹配結束 - &和&

and, &, & 

我用下面的代碼:

(&|&|\band\b) 

上面代碼的問題是:這也符合其與開始的單詞&

i.e. © € 

我也嘗試了以下操作,但它不匹配&字符,從文本的開頭和結尾處開始。

(\s&\s|&|\band\b) 
+0

它是一個真理,在鞋底「&」的情況下,就是始終前面和後面的空間? – Cups 2012-08-01 22:00:40

回答

4

如何

(&)|&(?!\w)|\band\b 

匹配and&&

不匹配©€

,中間的是後面沒有字的符號匹配字符([A-Za-z0-9_]

1
(&|&|\band\b) 

是一個良好的開端。繼續減少結果集,您將不得不指定不匹配的細節。沒有魔術分隔符告訴正則表達式你想要什麼。所以問題是:你怎麼能告訴'&'你想接受你的那些而不是想接受?

也許你想接受所有'&'如果不是開始一個單詞?所以:

(&[^a-zA-Z]|&|\band\b) 
0

試試這個正則表達式:

$regex = '/\b((\&(amp;)?)|(and))\b/i';