字母数字正则表达式字符串

En-*_*ion 0 regex

我正在尝试为字母数字字符串编写正则表达式.

以下是所有有效字符:

+0123456789BC
Run Code Online (Sandbox Code Playgroud)

有效字符串是:

+445677BBCC
12345
44556677 etc
Run Code Online (Sandbox Code Playgroud)

基本上规则是:

  • 可能是也可能不是以+开头
  • 后跟一个或多个数字0-9
  • 随后是零或多个B或C的任何顺序

目前有:

^\+?[0-9]+[BC]+?$
Run Code Online (Sandbox Code Playgroud)

但这并不是我所需要的.

有帮助吗?

Viv*_*ath 5

我认为你必须逃避+,并且[BC]需要在*"零或更多"而不是+一个或多个之后转换元字符.你也不需要?在最后,因为没有必要把它变成非贪婪的比赛; 无论如何你要匹配到字符串的末尾:

/^\+?\d+[BC]*$/
Run Code Online (Sandbox Code Playgroud)

否则,你所拥有的并不是真正有效的正则表达式.+开头没有什么可重复的,而且^只是字符串开头的锚点.