此正则表达式来自 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?>
显然我不太了解正则表达式。应该如何调整图案以允许空白目标和没有其他目标?