Java正则表达式子字符串以特定字符开头,后跟一些数字

时间:2012-10-22 23:19:03

标签: java regex

我正在尝试找到像'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条件!!!!

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

对于ABC后跟任意数字的数字:

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

或特别为5位数字:

Pattern pat = Pattern.compile("ABC\\s*\\d{5}");

答案 2 :(得分:1)

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

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