java请教 如何用正则获取字符串

wskfhvhc 2013-10-16 04:26:05
我有一串字符串,我想要获取其中的href="adkjfjadjfa" 这段字符串,这样的字符串,在整个字符串中可能还有好几个,怎么用正则把它们匹配出来?注意:href= 这后面可能是" 也可能是'
下面是我写的,只能匹配一段href="XXXXXXXX"; 并且只能获取双引号类型的

import java.util.regex.*;

public class Test {
public static void main(String[] args) {
String ptn = ".*href=(.*\")";
Pattern p = Pattern.compile(ptn, Pattern.DOTALL);
String s = "asdfadfaadf-href=\"1alkjdflkajdfjalkdfj1\"adfadfhref=\'1alkjdflkajdfjalkdfj1\'ad"; // \" 转义 ,表示"
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println("href="+m.group(1));
} else {
System.out.println("not match");
}
}
}

结果只匹配到一个:
href="1alkjdflkajdfjalkdfj1"
...全文
407 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
teemai 2013-10-17
  • 打赏
  • 举报
回复

static String ptn = "href=[\"|\'](.+?)[\"|\']";
    static Pattern p = Pattern.compile(ptn);
    public static void find(String str){
        Matcher m = p.matcher(str);
        while (m.find()) {
            System.out.println(m.group(1));          
        }
    }
花木兰1闪21A 2013-10-17
  • 打赏
  • 举报
回复
String regec= "(href=[\"\'].*?[\"\'])";
ghostkngiht 2013-10-17
  • 打赏
  • 举报
回复
问题解决了?
尘缘udbwcso 2013-10-16
  • 打赏
  • 举报
回复
这是自己已经做出来了?
wskfhvhc 2013-10-16
  • 打赏
  • 举报
回复

import java.util.regex.*;
  
public class Demo {
    static String ptn = "(href=[\"\']*)([^\"\']*[\"\'])";
    static Pattern p = Pattern.compile(ptn);
    public static void main(String[] args) {
        String s = "adfadfa-href=\"1alkjdflkajdfjalkdfj1\"adsffaadfadfa-href=\'1alkjdflkajdfjalkdfj1\'"; // \" 转义 ,表示"
        find(s);
         
    }
    public static void find(String str){
        Matcher m = p.matcher(str);
        while (m.find()) {
            System.out.println(m.group(0));          
        }
    }
}
这样的

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧