`

java正则表达式取的${}中的数据,或者替换

    博客分类:
  • java
 
阅读更多
取值

   public String formatParamCode(String paramCode){
    return paramCode.replaceAll("\\$", "").replaceAll("\\{", "").replaceAll("\\}", "");
   }

   public String composeMessage(String data, Map<String,String> paramData) throws Exception {
    String regex = "\\$\\{(.+?)\\}";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(data);
    StringBuffer msg = new StringBuffer();
    while (matcher.find()) {
      String key = matcher.group(1);// 键名
      String value = (String) paramData.get(key);// 键值
      if(value == null) {
        value = "";
      } else {
        value = value.replaceAll("\\$", "\\\\\\$");
      }
      matcher.appendReplacement(msg, value);
    }
    matcher.appendTail(msg);
    return msg.toString();
    }


    //取${} 变量,并存到Map中
    Map<String,String> paramData = new HashMap<String,String>();
    Pattern pattern = Pattern.compile("(\\$\\{[^\\}]+})"); 
    Matcher matcher = pattern.matcher(data);  
    while(matcher.find()){
      String paramCode = matcher.group(1);
      paramData.put(formatParamCode(paramCode),queryParamValue(paramCode));
    }
    //替换值
    try {  
        return composeMessage(data, paramData);
    } catch (Exception e) {  
        e.printStackTrace();  
    }  
分享到:
评论

相关推荐

    Java正则表达式去除img标签的src内容

    java代码,从image标签中正则匹配取出src标签的内容,java代码,从image标签中正则匹配取出src标签的内容

    精通正则表达式~~~

    精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...

    正则表达式经典实例

    书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、...

    Java中的正则表达式 -- 示例详解

    自从jdk1.4推出java.util.regex包,就为我们提供了很好的JAVA正则表达式应用平台。 因为正则表达式是一个很庞杂的体系,所以我仅例举些入门的概念,更多的请参阅相关书籍及自行摸索。 \\ 反斜杠 \t 间隔 ('\u0009...

    正则表达式

    正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它...

    正则表达式经典实例.pdf

    书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、...

    javascript的正则表达式

    正则表达式就是专门为了校验数据而产生的一个语法,除了可以校验数据,还可以提取一些想要的固定模式数据,还可以替换数据 – 替换字符串(正则表达式主要用于字符串的处理 ) 正则表达式就是一个模式,可以用来校验...

    Python中的正则表达式与JSON数据交换格式

    正则表达式 是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配快速检索文本、实现替换文本的操作 json(xml) 轻量级 web 数据交换格式 import re\na='C|C++|Java|C#||Python|Javascript'...

    使用python+正则表达式替换vue项目里中文.zip

    软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...

    PilotEdit Lite v12.7.0.zip

    可以把常用的正则表达式定义在脚本中,直接运行脚本即可替换文字 14. 256位 AES加密/解密 用PilotEdit直接透明地编辑一个加密的文件 加密/解密多个文件和目录 加密/解密超过4G的文件 15. 文件组 双击文件组...

    Java-PHP-C#

    正如上面说的,正则表达式看起来非常复杂,让人害怕,大多数的PHP初学者都会跳过这里,继续下面的学习,但是PHP中的正则表达式有着可以利用模式匹配找到符合条件的字符串、判断字符串是否合乎条件或者用指定的字符...

    文件写入,项目相对路径,java反射,模板数据写入

    格式化文件操作,将数据按照模板写入新文件,正则表达式替换模板指定内容,文件读写,stateprocess.java 项目运行文件

    java项目源码之UrlRewriter Java v2.0 RC1-urlrewriterjava.rar

    通过正则表达式或者自定义的匹配规则,实现对 URL 的灵活匹配和重写。 配置文件解析: 支持通过 XML 或者 JSON 格式的配置文件,配置 URL 重写规则和参数。 实现配置文件的解析功能,将配置文件中的规则转换为内部...

    PilotEdit支持超过400G的文件编辑

     &gt;可以把常用的正则表达式定义在脚本中,直接运行脚本即可替换文字  14、256位 AES加密/解密  &gt;用PilotEdit直接透明地编辑一个加密的文件  &gt;加密/解密多个文件和目录  &gt;加密/解密超过4G的文件  15、文件...

    功能超级强悍的文本编辑器 PilotEdit 14.3.0 + x64 中文多语免费版.zip

    文本编辑器,支持文本编辑,比较,FTP编辑,FTP上传下载,加密,十六进制编辑,列模式,回行显示,正则表达式,多行查找和替换,代码折叠,关键字高亮显示,编辑400GB的大文件,比较100GB的大文件,对超过1G的大文件...

    近5年133个Java面试问题列表

    多线程, 并发及线程基础 数据类型转换的基本原则 垃圾回收(GC) Java 集合框架 数组 字符串 GOF 设计模式 ...正则表达式 JVM 底层 Java 最佳实践 JDBC Date, Time 与 Calendar Java 处理 XML JUnit 编程

    Java开发技术大全(500个源代码).

    leapYearByLogical.java 用逻辑表达式判断闰年 lowToUpper.java 小写字母转换成大写字母 lozengeStar.java 输出一个由*组成的菱形 multiplyTable.java 求乘法口诀表 narrowingConversion_1.java 缩减转换引发...

    webmagicx一款基于webmagic的可配置化的爬虫框架

    无需写任何代码,只需你熟悉正则表达式和xpath,通过简单的配置便可实现一个爬虫。实现了基于corn的定时调度功能。提供了文本替换、正则查找、拆分等处理逻辑。提供了文件下载功能。提供了简单通用存储功能,能够将...

    使用log4j2实现日志数据脱敏

    使用log4j2实现日志数据脱敏

    regex-renamer:自动从code.google.compregex-renamer导出

    正则表达式重命名器Regex重命名器是一个批处理文件重命名器,它接受正则表达式来查找和替换目录(或子目录)下的文件名。 替换值可以是“硬类型”值,也可以来自文件元数据(如修改后的日期和大小),甚至可以是文件...

Global site tag (gtag.js) - Google Analytics