Java 通过正则表达式替换字符串

Java 通过正则表达式替换字符串简介java中提供了两个类来支持正则表达式的操作,分别是java.util.regex下的Pattern类和Matcher类依据Pattern对象做为匹配模式对字符串展开匹配检查,然后Matcher实例在给定的Pattern实例的模式控制下进行字符串的匹配,在实际的开发中,为了方便我们很少直接使用Pattern类或Matcher类,而是使用String类下的方法进行替换。…

大家好,又见面了,我是你们的朋友全栈君。

简介

    java中提供了两个类来支持正则表达式的操作,分别是java.util.regex下的Pattern类和Matcher类
 依据Pattern对象做为匹配模式对字符串展开匹配检查,然后Matcher实例在给定的Pattern实例的模式控制下进行字符串的
 匹配,在实际的开发中,为了方便我们很少直接使用Pattern类或Matcher类,而是使用String类下的方法进行替换。
 
 Pattern类的构造方法是私有的,所以我们使用Pattern p = Pattern.compile("a*b");进行实例化
 Matcher类的实例化依赖Pattern类的对象Matcher m = p.matcher("aaaaab");

下面是正则表达式的替换简单使用

/** * 正则表达式字符串替换 * @param content 字符串 * @param pattern 正则表达式 * @param newString 新的替换字符串 * @return 返回替换后的字符串 */
 public String regReplace(String content,String pattern,String newString){ 
   
     Pattern p = Pattern.compile(pattern);
     Matcher m = p.matcher(content);
     String result = m.replaceAll(newString);
     return result;
 }

下面是正则表达式分组的替换使用

public String regReplaceImage(String content){ 
   
        String pattern="<img\\s*([^>]*)\\s*src=\\\"(http://.*?/)(.*?)\\\"\\s*([^>]*)>";
        StringBuffer operatorStr=new StringBuffer(content);
        Pattern p = Pattern.compile(pattern,Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(content);
        while(m.find()) { 
   
            //使用分组进行替换
            operatorStr.replace(m.start(2),m.end(2),"/");
            m = p.matcher(operatorStr);
        }
        return operatorStr.toString();
    }

说明在这里插入图片描述 将红框内的表达式内容替换为”/”

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145762.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 常见期望和方差_泊松分布的期望推导

    常见期望和方差_泊松分布的期望推导展开全部数学期望是分布区间e68a8462616964757a686964616f31333431343065左右两端和的平均值,方差为分布区间左右两端差值平方的十二分之一。均匀分布是经常遇到的一种分布,其主要特点是:测量值在某一范围中各处出现的机会一样,即均匀一致。故又称为矩形分布或等概率分布。均匀分布的期望:均匀分布的期望是取值区间[a,b]的中点(a+b)/2,也符合我们直观上的感受。均匀分…

    2022年9月18日
    0
  • mbus总线是什么意思_Can总线如何配置500k波特率

    mbus总线是什么意思_Can总线如何配置500k波特率MBus总线上自动波特率识别1、通过前导字节0x68,捕获引脚通过1、0比特的两个上升沿的差值除以2来自动识别出波特率。2、为什么是通过两个上升沿,而不是一个上升沿一个下降沿,比如两个比特11的长度除以2来计算?因为两条平行的MBUS总线间存在电容效应,在实验室里面由于线比较短,不容易测试出来,但在实际产品使用中是真实存在的,因此在实验室里面分别用10nf、47nf、23n…

    2022年10月8日
    0
  • 讨喜的隔离可变性(五)同时使用多个角色

    讨喜的隔离可变性(五)同时使用多个角色

    2022年3月2日
    29
  • 第一课 Delphi7完全自学教程「建议收藏」

    第一课 Delphi7完全自学教程「建议收藏」   首先声明,我会以delphi7教程为主,可能会在这方面用的时间比较多,废话不多说了,今天给大家带来delphi7中最基本的面向对象程序设计语言。delphi是可视化的编程语言,delphi利用提供可视的"组件",像组件里添加一些功能或命令,该程序就有了自己所拥有的功能,比如说给组件“Button1”添加双击事件,然后干什么了?给窗体起个名字,或给按钮起一个名字都可以。这就是可视…

    2022年6月20日
    28
  • 个人觉得好用的Xmind快捷键(mac)[通俗易懂]

    个人觉得好用的Xmind快捷键(mac)[通俗易懂]commandN新建脑图空格修改文字Delete删除文字commandZ撤销上一步Enter添加平行分支Tab添加子节点command+/-放大/缩小commandI上传图片command+Shift+H插入超链接command+1,2,3,4,5,6快速添加优先等级图标-收缩目前分支方向键展开当前分支…

    2022年6月5日
    73
  • D3人物关系图谱「建议收藏」

    D3人物关系图谱「建议收藏」本人其他博客有介绍

    2022年6月26日
    96

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号