У меня есть некоторый код, проверяющий строку от 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?
Я пытался использовать прогнозные утверждения, но не смог заставить его работать.