如何使用java Matcher进行字符串头部和尾部截取替换操作?

2026-04-30 09:002阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计773个文字,预计阅读时间需要4分钟。

如何使用java Matcher进行字符串头部和尾部截取替换操作?

在Java编程中,我们经常遇到这样的需求:需要从一段字符串中提取特定的字符序列,根据一定规则查找或替换。以下是一个Matcher的使用示例:

javaimport java.util.regex.Matcher;import java.util.regex.Pattern;

public class Main { public static void main(String[] args) { String text=这是一个示例文本,其中包含一些特殊字符序列:[特殊序列1]和[特殊序列2]。; String regex=\\[([^\[\]]*)\\]; // 匹配方括号内的内容

Pattern pattern=Pattern.compile(regex); Matcher matcher=pattern.matcher(text);

while (matcher.find()) { String match=matcher.group(1); // 获取括号内的内容 System.out.println(找到匹配项: + match); } }}

在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<String> 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,用正则替换对应的内容

需求:

过滤样式,比如:

<p><span style="font-size: larger">铅笔机一个</span></p>

过滤后结果= 铅笔机一个

public static void main(String[] args) { String skuName="<p><span style='font-size: larger'>铅笔机一个</span></p>"; // 生成一个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 Matcher进行字符串头部和尾部截取替换操作?

本文共计773个文字,预计阅读时间需要4分钟。

如何使用java Matcher进行字符串头部和尾部截取替换操作?

在Java编程中,我们经常遇到这样的需求:需要从一段字符串中提取特定的字符序列,根据一定规则查找或替换。以下是一个Matcher的使用示例:

javaimport java.util.regex.Matcher;import java.util.regex.Pattern;

public class Main { public static void main(String[] args) { String text=这是一个示例文本,其中包含一些特殊字符序列:[特殊序列1]和[特殊序列2]。; String regex=\\[([^\[\]]*)\\]; // 匹配方括号内的内容

Pattern pattern=Pattern.compile(regex); Matcher matcher=pattern.matcher(text);

while (matcher.find()) { String match=matcher.group(1); // 获取括号内的内容 System.out.println(找到匹配项: + match); } }}

在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<String> 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,用正则替换对应的内容

需求:

过滤样式,比如:

<p><span style="font-size: larger">铅笔机一个</span></p>

过滤后结果= 铅笔机一个

public static void main(String[] args) { String skuName="<p><span style='font-size: larger'>铅笔机一个</span></p>"; // 生成一个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 Matcher进行字符串头部和尾部截取替换操作?