在java 编程中,我们常常有这样的需求:需要将一段字符串内的特定字符串,按照一定规则查找出来或替换,比如匹配文本开头规则和结束规则。

以下就是Matcher的使用:

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* @Author changle

* @Time 17/10/12.

* @Desc 匹配头尾截取替换字符串

* 待替换内容:

* url: jdbc:mysql://${cot.identity.db.ip}:3306/${cot.identity.db.dbname}?useUnicode=true&characterEncoding=UTF8

* 替换后:

* url: jdbc:mysql://{{cot.identity.db.ip}}:3306/{{cot.identity.db.dbname}}?useUnicode=true&characterEncoding=UTF8

*/

public class CommonTest {

public static void main(String[] args) {

String str = "url: jdbc:mysql://${cot.identity.db.ip}:3306/${cot.identity.db.dbname}?useUnicode=true&characterEncoding=UTF8";

if (str.contains("${cot.")) {

Pattern leftpattern = Pattern.compile("\\$\\{");

Matcher leftmatcher = leftpattern.matcher(str);

Pattern rightpattern = Pattern.compile("}");

Matcher rightmatcher = rightpattern.matcher(str);

int begin = 0;

List foundKeys = new ArrayList<>();

while (leftmatcher.find(begin)) {

rightmatcher.find(leftmatcher.start());

String configKey = str.substring(leftmatcher.start(), rightmatcher.end());

System.out.println(configKey.replace("${", "{{"));

foundKeys.add(configKey);

begin = rightmatcher.end();

}

System.out.println("原内容:"+str);

for (String foundkey : foundKeys){

str = str.replace(foundkey, foundkey.replace("${cot.","{{cot.").replace("}", "}}").replace("-","_"));

}

System.out.println("替换后:"+str);

}

}

}

补充知识:JAVA正则表达式 Pattern和Matcher,用正则替换对应的内容

需求:

过滤样式,比如:

铅笔机一个

过滤后结果= 铅笔机一个

public static void main(String[] args) {

String skuName="

铅笔机一个

";

// 生成一个Pattern,同时编译一个正则表达式

Pattern pattern = Pattern.compile("]*)>");

//匹配字符串

Matcher matcher = pattern.matcher(skuName);

//把符合正则的数据替换成""

skuName=matcher.replaceAll("");

System.out.println("替换以后结果=====》"+skuName);

}

输出结果:

替换以后结果=====》铅笔机一个

说明:

1.Pattern类用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建,但可以通过Pattern.complie(String regex)简单工厂方法创建一个正则表达式。

2.Pattern.matcher(String regex,CharSequence input)是一个静态方法,用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串。

以上这篇java Matcher匹配头尾截取替换字符串的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

字符串 匹配首尾字符串 java_java Matcher匹配头尾截取替换字符串的案例相关推荐

  1. 写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码

    题目要求: 写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码. 如("我ABC",4)应该截为"我AB", ...

  2. 字符串操作:索引位置、去空格、替换字符串

    指定字符的索引位置:s.indexOf().s.lastIndexOf()  (以字符串s为例.第一次与最后一次出现的位置) 指定索引位置的字符:s.charAt() 去除前.后空格:s.trim() ...

  3. Java - 正则表达式的运用(Pattern模式和Matcher匹配)

    一.绪论: 在写程序的过程中,有时会需要匹配.查找.替换或者是判断字符串的出现情况,而且有时不能用简单的纯编码方式解决这些问题,这个时候就会想到要正则表达式,无论是Java, PHH, C#,  Py ...

  4. c语言实现将字符串首尾*删除,java 编写函数将字符串的首尾空格删除。

    String 类有个方法去除字符串首位空格: str.trim(); 查看源代码: public String trim() { int len = value.length; int st = ; ...

  5. VIM 用正则表达式,非贪婪匹配,匹配竖杠,竖线, 匹配中文,倒数第二列, 匹配任意一个字符 :...

    VIM 用正则表达式 批量替换文本,多行删除,复制,移动 在VIM中 用正则表达式 批量替换文本,多行删除,复制,移动 :n1,n2 m n3     移动n1-n2行(包括n1,n2)到n3行之下: ...

  6. html的meta总结,html标签中meta属性使用介绍和   动态替换字符串

    http://www.haorooms.com/post/html_meta_ds http://www.haorooms.com/archives里面的东西比较多,需要细看一下 http://www ...

  7. scala字符串替换_如何在Scala中替换字符串中的正则表达式模式?

    scala字符串替换 Scala | 替换字符串中的正则表达式模式 (Scala | Replacing a regular expression pattern in a string) Repla ...

  8. PHP截取中文字符串的方法

    2019独角兽企业重金招聘Python工程师标准>>> PHP截取中文字符串方法总结. 程序一:PHP截取中文字符串方法 由于网站首页以及vTigerCRM里经常在截取中文字符串时出 ...

  9. java和js中替换字符串的方法

    //java中字符串的替换方法: String a = "吴林飞-1a_,唐姐-2,周帅-3"; String f = a.replaceFirst("-", ...

最新文章

  1. list子类使用toarray方法实现集合向数组转换,下列哪些说法是正确的
  2. 使用 CommandBuilder 生成命令 (ADO.NET)
  3. java-模拟出栈入栈
  4. 从传递函数到差分方程的转换
  5. 《微机原理及接口技术》第03章在线测试
  6. halcon/c++接口基础 之 HALCON图像变量类
  7. 一些学习的网址和资料
  8. BZOJ2002[HNOI2010] 弹飞绵羊(LCT)
  9. 《UNIX网络编程 卷1:套接字联网API》学习笔记——基本UDP套接字编程
  10. Houdini在UE4特效中的尝试分享
  11. cad图纸批量转换pdf
  12. LABjs分析 http://labjs.com/documentation.php#queuescript
  13. Python+tkinter应用程序设置背景图片
  14. 常见bugger集合
  15. 什么是欧代?什么是欧盟代理人?
  16. [NOI2008]糖果雨
  17. 杰理之设置立体声输出,播左右声道歌曲后DAC没有声音或声音变小
  18. (转)通过Net-Speeder为***提升网速
  19. 微信小程序车辆登记+后台管理系统
  20. 计算机网络(二)Linux网络编程

热门文章

  1. 网页未连接到互联网,代理服务器出现问题
  2. 计算机综合能力描述,计算机综合应用能力实训报告
  3. Norgen痰液液化缓冲液解决方案
  4. PHP微信动态二维码活码管理系统源码免授权 独立版 带充值支付
  5. win10/win7文件夹或文件查看方式怎么统一设置
  6. html的五角星怎么打出来,五角星符号怎么打出来?
  7. Elastic:我应该使用 Logstash 或是 Elasticsearch ingest 节点?
  8. 横向越权与纵向越权区别
  9. 关于c中的%x及其它格式化符
  10. 串口/U(A/S)RT(RS232/RS485/RS422协议等)