Regex Java正则表达式,用于限定字符或小于11的任何字符

Regex Java正则表达式,用于限定字符或小于11的任何字符,regex,Regex,我是一名Rails开发人员,但我需要一个正则表达式,它可以允许一个短码或任何一组总共不超过11个字符。 我的想法是: (7575|[0-9a-zA-Z& ]*{11}) 然而,它没有起作用 我不知道您使用的是什么函数(这很重要,因为查找和匹配的行为不同),但为了明确起见,您可以使用以下方法: ^(7575|[0-9a-zA-Z& ]{1,11})$ 以上表示匹配7575或匹配字符集0-9a-zA-Z&中的1到11个字符。如果您还想允许空字符串,则必须使用{0,11} 内存效率

我是一名Rails开发人员,但我需要一个正则表达式,它可以允许一个短码或任何一组总共不超过11个字符。 我的想法是:

(7575|[0-9a-zA-Z& ]*{11})

然而,它没有起作用

我不知道您使用的是什么函数(这很重要,因为
查找
匹配
的行为不同),但为了明确起见,您可以使用以下方法:

^(7575|[0-9a-zA-Z& ]{1,11})$
以上表示匹配
7575
或匹配字符集
0-9a-zA-Z&
中的1到11个字符。如果您还想允许空字符串,则必须使用
{0,11}

内存效率稍高的是
^(?:7575 |[0-9a-zA-Z&]{1,11})$
(因为没有捕获组)


^
匹配字符串的开头,
$
匹配字符串的结尾,从而确保匹配部分前后不再有字符。

进一步提高内存效率的正则表达式

"^(7575|[\w]{1,11})$"

其中\w是单词字符,是[A-zA-Z_0-9]的缩写。

能否提供一个与所需正则表达式匹配的字符串示例?问题是-为什么要在模式中保留
7575
?这与后面更一般的模式相匹配。@nhahtdh我确实没有注意到这一点。这是一个很好的问题。问题中没有——为什么要隐式地包含它?