我正試圖在PHP中編寫正則表達式。從這個代碼我想匹配'酒吧'。PHP正則表達式提取標籤正文中的引用文本
<data info="foo">
"bar"|tr
</data>
我試過這兩個正則表達式,但沒有成功。它匹配'foo「>」酒吧「。
$regex = '/"(.*?)"\|tr/s';
$regex = '/"[^"]+(.*?)"\|tr/s';
任何人都可以幫到我嗎?
我正試圖在PHP中編寫正則表達式。從這個代碼我想匹配'酒吧'。PHP正則表達式提取標籤正文中的引用文本
<data info="foo">
"bar"|tr
</data>
我試過這兩個正則表達式,但沒有成功。它匹配'foo「>」酒吧「。
$regex = '/"(.*?)"\|tr/s';
$regex = '/"[^"]+(.*?)"\|tr/s';
任何人都可以幫到我嗎?
你需要逃避的PHP字符串中的反斜線:
$regex = '/"([^"]*)"\\|tr/s';
我添加了一個捕獲組,以獲得報價的內容,你似乎有興趣。
由於您似乎將正則表達式應用於XML,我只是想警告您,XML和正則表達式不能很好地協同工作。正則表達式只建議與DOM結合使用。如果你想只匹配字母和數字
$regex = '/"([^">]+)"\|tr/s'
,你可以這樣做::
\"\w+\"
應在括號匹配任何文字字符
我會匹配「酒吧foobar」| tr而不是一個單詞。感謝您的回答。 – 2009-06-15 16:16:22
試試這個
$regex = '/"([\w\d]+)"\|tr/s'
謝謝,它也可以... – 2009-06-15 16:22:59
$regex = '/"(.+?)"(?=\|tr)/'
將匹配"bar"
(包括引號),你有在$ 1中的bar
字符串(不含引號)。 用途look-ahead。
非常感謝。有用。 – 2009-06-15 16:22:23
不客氣。 – Tomalak 2009-06-15 16:23:14