我尝试查看了许多关于如何在我的HTML5模式的正则表达式函数中使用否定后顾和先行的正则指南。
我试图匹配以下模式,其中字符串必须以一个[a-z]字母开始和结束。字符串长度最长可以为30个字符。也可以包括符号:-,但不能连续出现两个-。
因此,迄今为止我想到的是这样的内容:
我试图匹配以下模式,其中字符串必须以一个[a-z]字母开始和结束。字符串长度最长可以为30个字符。也可以包括符号:-,但不能连续出现两个-。
因此,迄今为止我想到的是这样的内容:
^[a-z][a-z(?<!-(-)?!-)]{0,28}[a-z]$
现在我无法使前瞻和后顾工作正常,而且我不确定我是否正确实现了最大30个字符。但是,我尝试以[a-z]
开头和结尾,并且它可以正常工作。
一些示例字符串:
'a-b' => true
'a-' => false
'-a' => false
'a--b' => false
'ab-cd' => true
'abc' => true
'a-b-c' => true
^(?!.{31})[a-z]+(?:-[a-z]+)*$
。不清楚您是否只想匹配像abc-xyz-def
和aaaaaa
这样的字符串,还是像a-()*^a
这样的字符串也是有效的。请添加一些您允许和不允许的字符串示例。 - Wiktor Stribiżew