java 字符串截取替换_java Matcher匹配头尾截取替换字符串的案例

在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匹配头尾截取替换字符串的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值