我有一些代码验证 1 到 32 个字符的字符串,它可能只包含字母数字和连字符 ('-'),但可能不以连字符开头或结尾。
我正在使用 PCRE 正则表达式和 PHP(尽管在这种情况下 PHP 部分并不重要)。
现在伪代码看起来像这样:
if (match("/^[\p{L}0-9][\p{L}0-9-]{0,31}$/u", string)
and
not match("/-$/", string))
print "success!"
也就是说,我首先检查字符串的内容是否正确,不带有'-'并且长度正确,然后我正在运行另一个测试以查看它不以a结尾'-'。
关于将其合并为单个 PCRE 正则表达式的任何建议?
我试过使用前瞻/后瞻断言,但无法让它工作。