-1

我正在尝试找到像“ABCxxxxx”(x 是数字,例如我们有 5 个 x)这样的正则表达式模式来发现另一个字符串中的任何类似子字符串。

使用上述正则表达式

ABC12345 or
ABC09090 or
ABC 54321 etc.

都是匹配的。

谁能帮我解决这个问题?

谢谢,

它仍然不起作用!这就是我根据您的回复尝试过的:我的文字是

Fwd: Fwd: kam rran 2323242 ojdwohejf ABC12345 dewfwe

代码是:

String regex = "ABC\\s*\\d{5}";

java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(
                 regex, 
                 java.util.regex.Pattern.CASE_INSENSITIVE
);

Matcher m = pattern.matcher(subject);

if (m.find()) {
   this.setThat(m.group());
}

但它没有通过 if 条件!!!!

4

3 回答 3

3

你可以试试这个正则表达式:

ABC\s*\d{5}
  • ABC => 匹配字母 ABC 的序列
  • \s* => 匹配一个或多个空白字符
  • \d{5}=> 匹配 5 位数字

注意:不要忘记在代码中使用“\”转义“\”。

于 2012-10-22T23:26:31.270 回答
2

ForABC后跟任意位数:

Pattern pat = Pattern.compile("ABC\\s*\\d+");

或特别是 5 位数字:

Pattern pat = Pattern.compile("ABC\\s*\\d{5}");
于 2012-10-22T23:26:45.790 回答
1

这个正则表达式"ABC[0-9]{5}"应该有帮助。它将匹配前缀为“ABC”,后跟任何数字。

您可能希望在"ABC[0-9]+"之后使用任意数量的数字ABC

于 2012-10-22T23:27:20.053 回答