我正在努力满足下一个限制:
我想获得下一个输出:
aaa -> good
aaaa -> good
-aaa -> bad
aaa- -> bad
---a -> bad
Run Code Online (Sandbox Code Playgroud)
有一些正则数据没有给出正确答案:1)^[^-][a-z0-9\-.]{3,256}[^-]$所有测试线都是坏的;
2)^[^-]+[a-z0-9\-.]{3,256}[^-]+$将前三行视为一个匹配的字符串,因为[^ - ]匹配新行我猜.
3)^[^-]?[a-z0-9\-.]{3,256}[^-]?$(?用于一个或零匹配的破折号)使所有测试线都很好
真相在哪里?我感觉它要么接近我的要么更复杂.
PS我使用python 3 re模块.
regex ×1