匹配具有固定长度的正则表达式并添加尾随空格

时间:2017-08-22 16:34:55

标签: java regex

我无法创建正则表达式(Java)以匹配以下模式:

  1. 1 2 数字
  2. 开头
  3. 后跟字母 M MS
  4. 必须长度为7个字符。最后的填充必须用空格来完成。
  5. 有效输入:

    • 2M,2MS,10M,10MS(以及它们各自的尾随空格)

    到目前为止我所拥有的:

    [\\d{1,2}MS?\\s]{7}

    它强制执行长度并允许空格,但这是关于它的。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

这个完成工作:

^(?=.{7}$)\\d{1,2}MS?\\s*$

<强>解释

^           : begining of line, not mandatory when using matches()
(?=.{7}$)   : lookahead, make sure we have exactly 7 characters
\\d{1,2}    : 1 or 2 digits
M           : M
S?          : optional S
\\s*        : 0 or more spaces
$           : end of line, not mandatory when using matches()