正则表达式 - 带空格的字母数字,但仅排除没有字母数字字符的空格

时间:2016-02-12 07:26:56

标签: regex

我正在尝试在其前面有一些文字的标签上进行匹配 几个样本:

<p> some text here <a href="#">and here</a></p> <!--want match--><br/>
<p> some text here and number 55 <a href="#">and here</a>  </p> <!--want match--><br/>
<p>  <a href="#">and here</a></p> <!--do not want match--><br/>

现在我使用这个正则表达式

>[\w,.-_|]+<a (.*?)</a>\s*<

我没有得到任何一个匹配。 但是,这个正则表达式

>[\s\w,.-_|]+<a (.*?)<\/a>\s*<

在所有3上给出匹配,我只希望前2匹配

这里的问题是&#34; \ s&#34;空白。 我不介意文本之间的空格,但如果只有空格而没有文字,那就不应该匹配。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我不完全确定你所追求的是什么,但这只与前两个匹配:

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

这匹配任何锚标记,前面有一个前面有一些文字文本的空格。如果这不是预期的结果,请用更多的例子来澄清这个问题。

编辑:删除组前的冗余\ s 编辑:已更改。*到[^&gt;]不跳过标记