2

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

我确实需要使用正则表达式来识别以下类型的标签:

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

我尝试了很多正则表达式......但没有一个工作......

¿有人可以帮我吗?

4

2 回答 2

1

<a>据我了解,无论属性多么混乱,您都希望匹配标签内部:

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

正则表达式可视化

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

于 2013-10-23T11:32:30.793 回答
1

好的,根据您的最后评论。

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

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

这分解为

  • <a[^>]*>=<a后跟任意数量的非 a 字符,>然后是 a>
  • (.(?!</a>))*= 任何不跟在 后面的字符</a>,重复任意次数(可以是 0)
  • .?= 任何字符(可选)
  • </a>= 最后是结束标签。

如果您希望标签的内部成为一个捕获组,那么它的

<a[^>]*>((?:.(?!</a>))*.?)</a>
于 2013-10-23T11:22:25.427 回答