0

此正则表达式来自 Atwood,用于过滤除 href 和标题之外的任何锚标记:

 <a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")?\s?>

我需要允许特别匹配的附加属性:target="_blank"。所以应该允许以下网址:

 <a href="http://www.google.com" target="_blank">

我尝试将模式更改为:

 <a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget="_blank")?\s?>
 <a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget=\"_blank\")?\s?>

显然我不太了解正则表达式。应该如何调整图案以允许空白目标和没有其他目标?

4

2 回答 2

1
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"\s(target=\"_blank\")>

会做你所要求的。

如果你是一个正则表达式的小伙伴,让我推荐 RegExBuddy。它是一个程序,可让您在示例文本或示例文件上测试您的正则表达式。

节省大量时间。

http://www.regular-expressions.info/regexbuddy.html(正则表达式好友)

http://www.regular-expressions.info也是一个很好的资源

于 2010-03-16T19:54:39.937 回答
1
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget="_blank")>
于 2010-03-16T19:56:04.870 回答