Javascript 修改正则表达式

Javascript 修改正则表达式,javascript,php,regex,Javascript,Php,Regex,我需要修改以下正则表达式的帮助: /(<a[^<>]*\shref=[\"\'])([^#][^<\"\'>]+)([\"\'][^<>]*)(.*?<\/a>)/is /( 它将提取http://www.google.com和所有其他内容。我还将href包含在正则表达式中,如果它包含#字符,则忽略href,这是因为我只对相对链接和绝对链接感兴趣。但是,我遇到了一个类似于的锚。出于某种原因,“/”字符将不匹配我需要解决这个问题。这是演示,

我需要修改以下正则表达式的帮助:

/(<a[^<>]*\shref=[\"\'])([^#][^<\"\'>]+)([\"\'][^<>]*)(.*?<\/a>)/is
/(

它将提取
http://www.google.com
和所有其他内容。我还将href包含在正则表达式中,如果它包含
#
字符,则忽略href,这是因为我只对相对链接和绝对链接感兴趣。但是,我遇到了一个类似于
的锚。出于某种原因,“/”字符将不匹配我需要解决这个问题。这是演示,您需要添加负前瞻

(<a[^<>]*\shref=[\"\'])(?!#)([^<\"\'>]+)([\"\'][^<>]*)(.*?<\/a>)

使用此正则表达式更好

/<a.*href="([^#]*)">.*<\/a>/is
/.*/is

@splash58他不希望href value开头出现
#
。请在您的答案中添加一点解释。
(<a[^<>]*\shref=([\"\']))(?!#)([^<\"\'>]+)(\2[^<>]*)(.*?<\/a>)
([^#][^<\"\'>]+)
/<a.*href="([^#]*)">.*<\/a>/is