您的位置 首页 java

Java正则表达式查找/替换

我们可以找到一个模式,并用一些文本替换,替换的文本取决于匹配的文本。

在Java中,我们可以在Matcher类中使用以下两个方法来完成这个任务。

Matcher appendReplacement(StringBuffer sb, String replacement)
StringBuffer appendTail(StringBuffer sb)
 

例子

假设我们有以下文本。

We have 7 tutorials for Java, 2 tutorials for Javascript and 1 tutorial for Oracle.
 

我们想在以下规则中将数字更改为文本。

  • 如果多于5,更换多
  • 如果小于5,请更换少量
  • 如果是1,替换为“只有一个”

更换后,上面的句子是

We have many tutorials for Java, a few tutorials for Javascript and only one tutorial for Oracle.
 

要找到所有数字,我们可以使用 bd+b。 b 标记单词边界。

以下代码显示如何 使用正则表达式 和appendReplacement()和appendTail()方法

import java.util. regex .Matcher;
import java.util.regex. Pattern ;
public class Main {
 public static void main(String[] args) {
 String regex = "\d+";
 StringBuffer sb = new StringBuffer();
 String replacementText = "";
 String matchedText = "";
 String text = "We have 7 tutorials for Java, 2 tutorials for Javascript and 1 tutorial for Oracle.";
 Pattern p = Pattern.compile(regex);
 Matcher m = p.matcher(text);
  while  (m.find()) {
 matchedText = m. group ();
 int num = Integer.parseInt(matchedText);
 if (num == 1) {
 replacementText = "only one";
 } else if (num < 5) {
 replacementText = "a few";
 } else {
 replacementText = "many";
 }
 m.appendReplacement(sb, replacementText);
 }
 m.appendTail(sb);
 System.out.println("Old Text: " + text);
 System.out.println("New Text: " + sb. toString ());
 }
}
 

上面的代码生成以下结果。

文章来源:智云一二三科技

文章标题:Java正则表达式查找/替换

文章地址:https://www.zhihuclub.com/182718.shtml

关于作者: 智云科技

热门文章

网站地图