正则表达式与非数字字符和变量号匹配精确字符串

Regular expression to match exact string with with non-numeric characters and variable number

我一直在为此苦苦挣扎,希望得到任何帮助。

我有一行代码总是看起来像这样:

Thread.sleep(1000)

Thread.sleep()始终是一个固定的字符序列,但里面的整数是可变的。我将如何编写一个正则表达式来捕捉这个?

您可以使用 regex, Thread\s*\.\s*sleep\s*\(\s*\d+\s*\).

正则表达式的解释:

  • Thread:字面意思,Thread
  • \s*\.\s*: . 前后有 0+ 个空白字符
  • sleep\s*:文字,sleep后跟0+个空白字符
  • \(\s*:字符,(后跟0+个空白字符
  • \d+\s*: 一个或多个数字后跟 0+ 个空白字符
  • \):字符,)

演示:

public class Main {
    public static void main(String[] args) {
        String x = "Some Thread.sleep(1000) text";
        x = x.replaceAll("Thread\s*\.\s*sleep\s*\(\s*\d+\s*\)", "");
        System.out.println(x);
    }
}

输出:

Some  text