Java(Spring配置)中的正则表达式,在开头有2个特定字符

时间:2015-06-04 07:37:10

标签: java regex spring

我需要正则表达式,以2个特定字母开头,长度为28个字符。 需要正则表达式,因为这与Spring配置一起使用,它只采用正则表达式。

我一直在努力做到这一点,它不起作用(^[AK][28]*)

3 个答案:

答案 0 :(得分:3)

如果你的意思是字符串应该像" AKxxxxxxxx" (共28个字符),然后你可以使用:

^AK.{26}$ //using 26 since AK already count for 2 characters

答案 1 :(得分:0)

如果需要计算重复次数,请使用{min, max}语法。省略逗号和最大值会告诉正则表达式解析器查找完全min次重复。

例如:

.{1,3}将匹配任意字符(由dot)序列显示 1到3个字符之间。

[AK]{2}将匹配完全 2个 A或K的字符: AK,AA,KA或KK。

另外,你的正则表达式使用[AK]。这意味着它将匹配给定的一个字符,即A或K.

如果您需要匹配特定的“AK”序列,那么您需要摆脱'['']'令牌。

因此,你的正则表达式可以是AK.{28},这意味着它将匹配AK,后跟恰好28个字符。

答案 2 :(得分:0)

Regex并不是Java的特定内容,如果您查看任何tutorial(并且有足够的内容!),也不是很难。

回答你的问题:

AK[a-zA-Z]{26}

以上正则表达式应解决有关28个字符串的问题,前两个字母为 AK

精化:

  • AK [A-ZA-Z] {26}
    >这样写的字符,没有任何特殊字符,将与匹配(这意味着它们必须完全按照这种方式编写)
  • AK [<强> A-ZA-Z ] {26}
    &GT;通过使用方括号,您可以定义一组字符,符号等与正则表达式的一部分匹配(默认为1) - 您可以记下所有可能的字符/符号或使用组(例如az, / d表示数字,等等)
  • AK [A-ZA-Z]的 {26}
    &GT;对于每组字符/符号,您可以定义重复计数,这定义了可以/必须应用集合的频率。例如。 {26}表示必须匹配26次。其他可能性是{2,26}意味着它必须匹配至少2次但最多26次,或者例如使用像 * + 这样的运营商?表示该集合可以匹配 0次或更多次至少一次 0或1次

如果您需要匹配整行,您可能希望分别在开头和结尾添加 ^ $ 告诉正则表达式解析器它必须匹配整行/字符串而不仅仅是一个部分:

^AK[a-zA-Z]{26}$