我正在尝试在PHP中编写正则表达式。从这段代码我想匹配'bar'。
<data info="foo">
"bar"|tr
</data>
我尝试了这两个正则表达式,没有成功。它匹配'foo“&gt;”bar“。
$regex = '/"(.*?)"\|tr/s';
$regex = '/"[^"]+(.*?)"\|tr/s';
任何人都可以帮助我?
答案 0 :(得分:3)
你需要转义PHP字符串中的反斜杠:
$regex = '/"([^"]*)"\\|tr/s';
我添加了一个捕获组来获取引号的内容,您似乎对此感兴趣。
由于您似乎将正则表达式应用于XML,我只想警告您,XML和正则表达式不能很好地协同工作。 Regex仅推荐与DOM结合使用。
答案 1 :(得分:0)
\"\w+\"
应匹配括号中的任何单词char
答案 2 :(得分:0)
试试这个:
$regex = '/"([^">]+)"\|tr/s'
如果您只想匹配字母和数字,可以执行以下操作:
$regex = '/"([\w\d]+)"\|tr/s'
答案 3 :(得分:0)
$regex = '/"(.+?)"(?=\|tr)/'
将匹配"bar"
(包括引号),并且您在$ 1中拥有bar
字符串(不含引号)。
使用look-ahead。