Java 正則表達(dá)式查找/替換

2021-09-09 10:55 更新

Java正則表達(dá)式教程 - Java正則表達(dá)式查找/替換


我們可以找到一個模式,并用一些文本替換,替換的文本取決于匹配的文本。

在Java中,我們可以在Matcher類中使用以下兩個方法來完成這個任務(wù)。

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

例子

假設(shè)我們有以下文本。

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

我們想在以下規(guī)則中將數(shù)字更改為文本。

  • 如果多于5,更換多
  • 如果小于5,請更換少量
  • 如果是1,替換為“只有一個”

更換后,上面的句子是

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

要找到所有數(shù)字,我們可以使用 \b\d+\b \b 標(biāo)記單詞邊界。

以下代碼顯示如何使用正則表達(dá)式和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());
  }
}

上面的代碼生成以下結(jié)果。




以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號