Java中字符串匹配

super_loverax 2013-08-19 08:13:28
例如,src="abc123df12gh630hh2";要将字符串中遇到的数字前后都加上*,得到新字符串。即abc*123*df*12*..... 这样的字符串,怎么弄好呢。
...全文
211 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
roke_qi 2013-08-19
  • 打赏
  • 举报
回复
这个方法不错啊
super_loverax 2013-08-19
  • 打赏
  • 举报
回复
引用 5 楼 suciver 的回复:
[quote=引用 4 楼 super_loverax 的回复:] [quote=引用 2 楼 suciver 的回复:]

public static void main(String[] args) throws Exception{
	String src="abc123df12gh630hh2";
	src=src.replaceAll("(\\d+)","*$1*");
	System.out.println(src);
}
哇,正则大神啊,这个更简洁了。能简单解释一下后面替换的字符的含义吗,*$1*为何能通配遇到的数字呢。简单解释一下哈![/quote] 前面的(\\d+)就把匹配到的数字捕获为组1了,后面$1表示组1的内容前后加*就等于把捕获到的内容前后加*[/quote] 嗯,感谢哈。每次匹配的都是组1吗,后面匹配的会不会是组2组3这样的,$1表示组1的内容,这个我不清楚,有什么相关资料可以看看吗,可以给个链接类似的不,谢啦哈!
suciver 2013-08-19
  • 打赏
  • 举报
回复
引用 4 楼 super_loverax 的回复:
[quote=引用 2 楼 suciver 的回复:]

public static void main(String[] args) throws Exception{
	String src="abc123df12gh630hh2";
	src=src.replaceAll("(\\d+)","*$1*");
	System.out.println(src);
}
哇,正则大神啊,这个更简洁了。能简单解释一下后面替换的字符的含义吗,*$1*为何能通配遇到的数字呢。简单解释一下哈![/quote] 前面的(\\d+)就把匹配到的数字捕获为组1了,后面$1表示组1的内容前后加*就等于把捕获到的内容前后加*
super_loverax 2013-08-19
  • 打赏
  • 举报
回复
引用 2 楼 suciver 的回复:

public static void main(String[] args) throws Exception{
	String src="abc123df12gh630hh2";
	src=src.replaceAll("(\\d+)","*$1*");
	System.out.println(src);
}
哇,正则大神啊,这个更简洁了。能简单解释一下后面替换的字符的含义吗,*$1*为何能通配遇到的数字呢。简单解释一下哈!
super_loverax 2013-08-19
  • 打赏
  • 举报
回复
感谢,这个方法应该是常见的正则通用的方法了。
引用 1 楼 ghostkngiht 的回复:

        String string = "abc123df12gh630hh2";
        Pattern p = Pattern.compile("\\d+");
        Matcher m = p.matcher(string);
        StringBuilder builder1 = new StringBuilder();
        int index = 0;
        while (m.find()) {
            builder1.append(string.substring(index, m.start()));
            builder1.append("*").append(m.group()).append("*");
            index = m.end();
        }
        builder1.append(string.substring(index));
        System.out.println(builder1.toString());
suciver 2013-08-19
  • 打赏
  • 举报
回复

public static void main(String[] args) throws Exception{
	String src="abc123df12gh630hh2";
	src=src.replaceAll("(\\d+)","*$1*");
	System.out.println(src);
}
ghostkngiht 2013-08-19
  • 打赏
  • 举报
回复

        String string = "abc123df12gh630hh2";
        Pattern p = Pattern.compile("\\d+");
        Matcher m = p.matcher(string);
        StringBuilder builder1 = new StringBuilder();
        int index = 0;
        while (m.find()) {
            builder1.append(string.substring(index, m.start()));
            builder1.append("*").append(m.group()).append("*");
            index = m.end();
        }
        builder1.append(string.substring(index));
        System.out.println(builder1.toString());

62,615

社区成员

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

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