• JAVA、C#中使用正则表达式替换字符串


    进来在项目中碰到一个字符串替换问题,要替换的内容格式相对比较固定,里面包含时间为变化值,想到了用正则表达式替换,一直学,一直不会写,也是醉了


    要调换掉的内容如下:

    (折扣适用范围:起始日期:20210101,终止日期:20211231)
    (折扣适用范围:起始日期:20200101,终止日期:2020.12.31)

    主要是这两种组合,可能是独立段落,也可能是嵌套在语句中 c#代码实现:
    public string ReplaceNote(string note)
            {
                string regexStr = "([(]折扣适用范围:起始日期:)([0-9][0-9][0-9][0-9])(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01]),终止日期:([0-9][0-9][0-9][0-9])(\.?)(0[1-9]|1[012])(\.?)(0[1-9]|[12][0-9]|3[01])[)]";
                Regex reg = new Regex(regexStr);
    
                if (!string.IsNullOrEmpty(note))
                {
                    string modifiedNote = reg.Replace(note, "");
                    return modifiedNote;
                }
                return note;
            }
    java 代码实现:
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    private String ReplaceNote(String note){
            String pattern = "([(]折扣适用范围:起始日期:)([0-9][0-9][0-9][0-9])(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01]),终止日期:([0-9][0-9][0-9][0-9])(\.?)(0[1-9]|1[012])(\.?)(0[1-9]|[12][0-9]|3[01])[)]";
            Pattern r = Pattern.compile(pattern);
            Matcher matcher = r.matcher(note);
            while(matcher.find()){
                String reeStr=matcher.replaceAll("");
                return reeStr;
            }
            return note;
        }

    正则表达式说明:

    //匹配 20201212 
    ([0-9][0-9][0-9][0-9])(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])  
    //匹配 2020.12.12
    ([0-9][0-9][0-9][0-9])(\.?)(0[1-9]|1[012])(\.?)(0[1-9]|[12][0-9]|3[01])
    最后分享一个正则图形化工具:regexper.com
  • 相关阅读:
    vue-element-admin中table分页改为前台处理
    vue项目如何部署到Tomcat中
    vuex之modules 热加载(hot update)
    持续学习
    css比较特殊选择器汇总(持续更新)
    关于伪元素before after总结
    ajax入门-实现省份下拉框
    super和this关键字的详解
    监听器
    当浏览器被关闭时,session是否被关闭?
  • 原文地址:https://www.cnblogs.com/buyixiaohan/p/15465216.html
Copyright © 2020-2023  润新知