javaMatcher匹配头尾截取替换字符串的案例
在java 编程中,我们常常有这样的需求:需要将⼀段字符串内的特定字符串,按照⼀定规则查出来或替换,⽐如匹配⽂本开头规则和结束规则。
以下就是Matcher的使⽤:
import java.util.ArrayList;
import java.util.List;
import Matcher;
import 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 (ains("${cot.")) {
Pattern leftpattern = Patternpile("\\$\\{");
Matcher leftmatcher = leftpattern.matcher(str);
Pattern rightpattern = Patternpile("}");
Matcher rightmatcher = rightpattern.matcher(str);
int begin = 0;
List<String> foundKeys = new ArrayList<>();
while (leftmatcher.find(begin)) {
rightmatcher.find(leftmatcher.start());
String configKey = str.substring(leftmatcher.start(), d());
System.out.place("${", "{{"));
foundKeys.add(configKey);
begin = d();
}
System.out.println("原内容:"+str);
for (String foundkey : foundKeys){
str = place(foundkey, place("${cot.","{{cot.").replace("}", "}}").replace("-","_"));
}
System.out.println("替换后:"+str);
}
java replace方法}
}
补充知识:JAVA正则表达式 Pattern和Matcher,⽤正则替换对应的内容
需求:
过滤样式,⽐如:
<p><span >铅笔机⼀个</span></p>
过滤后结果= 铅笔机⼀个
public static void main(String[] args) {
String skuName="<p><span style='font-size: larger'>铅笔机⼀个</span></p>";
// ⽣成⼀个Pattern,同时编译⼀个正则表达式
Pattern pattern = Patternpile("<(.[^>]*)>");
//匹配字符串
Matcher matcher = pattern.matcher(skuName);
//把符合正则的数据替换成""
placeAll("");
System.out.println("替换以后结果=====》"+skuName);
}
输出结果:
替换以后结果=====》铅笔机⼀个
说明:
1.Pattern类⽤于创建⼀个正则表达式,也可以说创建⼀个匹配模式,它的构造⽅法是私有的,不可以直接创建,但可以通过Patternplie(String regex)简单⼯⼚⽅法创建⼀个正则表达式。
2.Pattern.matcher(String regex,CharSequence input)是⼀个静态⽅法,⽤于快速匹配字符串,该⽅法适合⽤于只匹配⼀次,且匹配全部字符串。
以上这篇java Matcher匹配头尾截取替换字符串的案例就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。