PHP正则表达式提取标签正文中的引用文本

时间:2009-06-15 16:11:09

标签: php regex

我正在尝试在PHP中编写正则表达式。从这段代码我想匹配'bar'。

<data info="foo">
  "bar"|tr
</data>

我尝试了这两个正则表达式,没有成功。它匹配'foo“&gt;”bar“。

$regex = '/"(.*?)"\|tr/s';
$regex = '/"[^"]+(.*?)"\|tr/s';

任何人都可以帮助我?

4 个答案:

答案 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