首页 > 试题广场 >

写出正则表达式,从一个字符串中提取链接地址。

[问答题]
写出正则表达式,从一个字符串中提取链接地址。
比如下面字符串中
“<a title="软件测试面试题" href="http://www.mianwww.com/html/category/it-interview/softwaretest" target="_blank">软件测试面试题</a>”
则需要提取的地址为 “http://www.mianwww.com/html/category/it-interview/softwaretest ”
JavaScript 版本
github代码:https://github.com/lifetea/front-end-daily/blob/master/trial/RegExp/parse-html.js

    let str =`<a title="软件测试面试题" href="http://www.mianwww.com/html/category/it-interview/softwaretest" target="_blank">软件测试面试题</a>`
    let reg = /(?:[hH][rR][eE][fF]\s*=\s*['"]\s*)([^'"]*)/
    let [,href] = str.match(reg)
    console.log(href)


编辑于 2016-11-13 22:01:17 回复(0)
(?<=href=").*?(?=")
发表于 2017-12-22 18:47:13 回复(2)
 let b='<a title="软件测试面试题" href="http://www.mianwww.com/html/category/it-interview/softwaretest" target="_blank">软件测试面试题</a>'
let c=/http(\D+)(?="\s*target)/g
b.match(c)
编辑于 2021-12-03 15:47:40 回复(0)
/(?<=href=").*?(?=")/
正向断言和后向断言的应用 (?<=href=")  表示href=“  匹配后面部分
.* ? 惰性匹配除换行符的任意字符
(?=")  正向断言匹配”前面的部分
发表于 2021-01-20 22:00:04 回复(0)
$str = '<a title="软件测试面试题" href="http://www.mianwww.com/html/category/it-interview/softwaretest" target="_blank">软件测试面试题</a>';
$pattern = '/<a.*?href="(.*?)".*?<\/a>/';
preg_match($pattern, $str,  $arr);
print_r($arr);

发表于 2018-03-09 16:03:11 回复(0)
public static void main(String[] args) {
String str="<a title='软件测试面试题' href='http://www.mianwww.com/html/category/it-interview/softwaretest' target='_blank'>软件测试面试题</a>";
Pattern pattern = Pattern.compile("((?<=href=).+(?=target))");
Matcher m=pattern.matcher(str);
while(m.find()){
for(int i=0;i<m.groupCount();i++){
System.out.println(m.group(i));
}
}
发表于 2017-08-11 15:10:54 回复(0)
var linkStr = "<a title='软件测试面试题' href='http://www.mianwww.com/html/category/it-interview/softwaretest' target='_blank'>软件测试面试题</a>";
var reg = /^[a-zA-Z]+:\/\/([a-zA-Z0-9\-\.]+)([-\w .\/?%&=:]*)$/g;

发表于 2017-05-23 20:02:28 回复(0)
final String input = "<a title=\"软件测试面试\" href=\"http://www.mianwww.com/html/category/it-interview/softwaretest\" target=\"_blank\">软件测试面试题</a> ";
        final Pattern pattern = Pattern.compile ("<a(?: [^>]*)+href=([^ >]*)(?: [^>]*)*>");
        final Matcher matcher = pattern.matcher (input);
        while (matcher.find ()) {
            System.out.println (matcher.group (1));
        }
发表于 2015-05-02 19:56:24 回复(0)
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex {

    static void url() {

        String input = “<a title="软件测试面试题" href="http://www.mianwww.com/html/category/it-interview/softwaretest" target="_blank">软件测试面试题</a> “;
            Pattern pattern;
            Matcher matcher;
            pattern = Pattern.compile(“<a(?: [^>]*)+href=([^ >]*)(?: [^>]*)*>”);
            matcher = pattern.matcher(input);
            while (matcher.find()) {
                System.out.println(matcher.group());
            }
        }
}

发表于 2014-11-21 15:06:48 回复(0)