这个正则表达式来自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?>
显然我不太了解正则表达式。如何调整模式以允许空白目标而不是其他目标?
答案 0 :(得分:1)
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"\s(target=\"_blank\")>
会做你要问的事。
如果你是正则表达式,请让我推荐RegExBuddy。这是一个允许您在示例文本或示例文件上测试正则表达式的程序。
节省了大量时间。
http://www.regular-expressions.info/regexbuddy.html(Regex Buddy)
http://www.regular-expressions.info也是一个很好的资源
答案 1 :(得分:1)
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget="_blank")>