RegEx匹配所有标签文本

时间:2013-10-23 08:43:36

标签: regex

我正在使用一些正则表达式来识别我经常收到的一些YML文件中的内联标记。

我确实需要使用Regex Expression标识以下类型的标记:

<p class='link-pdf'>
</li>
<a id = 'pdf' href='#' target='_blank' class= 'pdf' onclick='location.href=\"/pdf/help/%{language}/download.pdf\"'>

我试过很多正则表达式......但是没有一个正常工作..

¿有人能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

好的,根据您的上一条评论。

捕获表单文本的所有标记的正则表达式可能如下所示:

<a[^>]*>(.(?!</a>))*.?</a>

这打破了

  • <a[^>]*> = <a后跟任意数量的字符,这些字符不是>,而是>
  • (.(?!</a>))* =任何未跟</a>的字符,重复任意次数(可能为0)
  • .? =任何字符(可选)
  • </a> =最后是结束标记。

如果您希望标签的内部是捕获组,那么

<a[^>]*>((?:.(?!</a>))*.?)</a>

答案 1 :(得分:1)

据我了解,您希望匹配<a>标记的内部,无论属性如何混乱:

(<\s*a\s*[^>]*>)([^<]*)(<\s*/\s*a[^>]*>)

Regular expression visualization

第二个捕获组将包含文本。