正则表达式与连字符

时间:2018-10-16 02:53:26

标签: regex

Java中是否存在允许字母数字字符(大写和小写),必须以字母开头,可以以字母或数字结尾并且中间还包含连字符的正则表达式?

我有^ [a-zA-Z] [A-Za-z0-9-] $,但不确定是否适用于所有情况。

1 个答案:

答案 0 :(得分:1)

^[A-Za-z]([A-Za-z0-9-]*[A-Za-z0-9])?$
  • ^[A-Za-z]:以字母开头
  • (...)?$:可以选择跟在该组之后,并以该组结尾
  • [A-Za-z0-9-]*:任意数量的字母,数字和连字符
  • [A-Za-z0-9]:一个字母或数字

您需要第2点,否则您会错过单字母序列,这些序列也可以根据您的描述有效

使用Python,我可以这样做:

(?i)^[a-z]([a-z\d-][a-z\d])?$