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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c++语言入门教程–15字符串常见操作

    c++语言入门教程–15字符串常见操作

    2021年3月12日
    140
  • winscp登录主机拒绝_winscp连接被拒绝怎么解决[通俗易懂]

    winscp登录主机拒绝_winscp连接被拒绝怎么解决[通俗易懂]解决方法:1、使用“sudoufwdisable”命令关闭防火墙;2、使用“sudo/etc/init.d/sshrestart”命令开启远程服务;3、打开22端口号。本教程操作环境:RedHatEnterpriseLinux6.1系统、DellG3电脑。winscp连接被拒绝可以尝试以下方法:1)开启|关闭防火墙(这里需要关闭)sudoufwenable|disable2…

    2025年12月15日
    5
  • webstorm激活码2021[最新免费获取]

    (webstorm激活码2021)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月29日
    129
  • leetcode-155最小栈(历史最值)「建议收藏」

    leetcode-155最小栈(历史最值)「建议收藏」原题链接设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,nul

    2022年8月8日
    6
  • EnableEventValidation启用事件验证

    EnableEventValidation启用事件验证根据出错页面给出的提示消息可以知道,默认情况下是启用了事件验证的,在Aspx页HTML部分的Page指令处添加如下属性,就可以在页面回发时禁用事件验证<%@PageLanguage=”C#”EnableEventValidation=”false”.%>分析:出现这个错误一般是因为在客户端调用了js代码,改写了页面控件中的值,而通过postback再次requ…

    2022年7月24日
    15
  • Apache中 RewriteRule 规则参数介绍

    Apache中 RewriteRule 规则参数介绍Apache中RewriteRule规则参数介绍 摘要: Apache模块mod_rewrite提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。这里着重介绍RewriteRule规则以及参数说明。Apache模块mod_rewrite提供了一个基于正则表达式分析器的重写引擎来实…

    2022年5月14日
    35

发表回复

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

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