正则表达式:匹配>内的所有引号<括号(不在<>内)

时间:2013-11-04 23:30:24

标签: regex

我有这样的文字:

hi this is <some-tag parameter="abc"> example text with 
quote sign here " and also some quote sign here " and here ". 
Quote does not have to be closed. And some numbers here 123.
</some-tag>

正则表达式在上面的示例中应匹配“”“(3次”)。

基本上,我需要的是匹配所有出现的双引号(),它们被&gt; &lt; 括号包围使用正则表达式。

请注意,我不是在&lt;&gt;之间寻找标签或任何内容,我只想查看&gt;&lt;之间的双引号,如下所示:&gt; &lt;

有什么想法吗? 谢谢。

3 个答案:

答案 0 :(得分:0)

这样做:

preg_match_all('/<.*"([^"])".*>/', $text);

但不是以任何人都会推荐使用的理智方式。如果您希望代码中具有真正的健全性,请使用XML / HTML / DOM解析器。

答案 1 :(得分:0)

/&LT; [^&GT;] =( “[^&GT;] )” &GT; / 会得到你的标签

此网站可能会帮助您:http://www.phpliveregex.com/

答案 2 :(得分:-1)

我同意@ Sammitch的建议(关于使用解析器)。不过,参考您提供的示例,您可以尝试这样做:

(?<=>[\s\S-[<]]*?)"

here是一个演示。