在另一个字符串中查找带有ALXXXXX模式的字符串的正则表达式是什么?

时间:2015-07-07 16:08:47

标签: java regex string

我想在另一个字符串中找到模式ALXXXXX的字符串。

例如,我想在字符串数据阶段AL00123 中找到字符串 AL00123

我在Java中尝试了以下内容。

Pattern pattern = Pattern.compile("AL\\d\\d\\d\\d\\d");
Matcher matcher = pattern.matcher(searchString);
boolean matches = matcher.matches();

这总是返回false。 我的代码出了什么问题?

我想实现以下

  1. 确定搜索字符串是否包含ALXXXXX。
  2. 检索ALXXXXX的值。
  3. 我想用Java做这件事。
  4. 以下是ALXXXXX可能以下列任何一种方式发生的各种方式

    1. Data Stage_AL00123
    2. 数据阶段AL00123
    3. 数据阶段(AL00123)
    4. 数据阶段(_AL00123)
    5. Data StageAL00123
    6. 最后

      1. 该字符串将始终以AL
      2. 开头
      3. 字符串将始终在AL
      4. 后面有5位数字

2 个答案:

答案 0 :(得分:4)

使用Matcher#matches匹配整个输入字符串的正则表达式模式。您想改用find

您还可以将正则表达式降低到AL\\d{5}

答案 1 :(得分:4)

您正在使用Matcher.matches(),如果字符串完全符合该模式,则仅返回true。出于您的目的,您需要使用Matcher.find()