这个问题表明我对正则表达式的无知。我从来没有完全理解它。
例如,如果我想匹配HTML中标记的URL部分,我还需要做什么?
我的正则表达式是获取整个标记:
<A[^>]*?HREF\s*=\s*[""']?([^'"" >]+?)[ '""]?>
我不知道我需要做些什么来获取URL,我不知道在哪里查看正则表达式文档来解决这个问题。
答案 0 :(得分:3)
如果在Perl中编程,您可以在if()语句中使用$ 1运算符。对于前。
if( $HREF =~ /<A[^>]*?HREF\s*=\s*[""']?([^'"" >]+?)[ '""]?>/ ) {
print $1;
}
答案 1 :(得分:2)
确切的HOW部分取决于您正在使用的正则表达式库,但方法是使用分组表达式。实际上,您的示例中已经有一个,因为分组表达式是括号。 href属性值是您的第一个组(您的第0个组是整个表达式。)
答案 2 :(得分:1)
您可以使用圆括号对正则表达式匹配的部分进行分组。在这种情况下,您可以在URL部分周围使用圆括号,然后使用数字来引用该组。请参阅here,了解您可以做到这一点。
答案 3 :(得分:0)
我改变了一点 - 尝试这样的事情:
<a[^>]*href="([^"]*).*>