【发布时间】:2011-02-11 15:10:55
【问题描述】:
我有一些代码验证 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!"
也就是说,我首先检查该字符串的内容是否正确,不带有“-”并且长度是否正确,然后我正在运行另一个测试以查看它没有以“-”结尾。
关于将其合并为单个 PCRE 正则表达式的任何建议?
我尝试过使用前瞻/后瞻断言,但无法正常工作。
【问题讨论】:
标签: php regex string pcre assertions