我需要构建一个只允许字母和连字符的正则表达式,但它需要连字符。
我试过了:
^[a-z]+[a-z\-]+[a-z]+$
(没有连字符的比赛)([A-Za-z\-]+)
(没有连字符的匹配也通过)[a-zA-Z][\-]+
(它没有用)有人可以写信给我吗?
提前致谢。
答案 0 :(得分:1)
其他答案都不需要连字符。试试[a-zA-Z-]*[-][a-zA-Z-]*
答案 1 :(得分:0)
你需要展望未来:
^(?=.*-)[a-zA-Z-]+$
那个小表达式(?=.*-)
是一个“向前看”,这是一个非消费的断言.*-
出现在前方,这意味着“输入中需要连字符”
此外,当第一个或最后一个连字符是 literal 连字符时,不需要转义,否则连字符表示范围。
答案 2 :(得分:0)
我不确定您的问题是否列出了所有要求。除了你所说的一切,这个模式将允许字母和连字符,并且至少需要1个连字符。
[a-zA-Z-]*-[a-zA-Z-]*
这允许字符串" - "那可以吗?
答案 3 :(得分:-1)
你没说哪种语言,所以这里是Javascript:
Code-> "te-st".match(/[A-Za-z-]+/)
Result -> ["te-st"]