尝试应用正则表达式以不允许双下划线的字符串
[a-z][a-z0-9_-]+[^__]
但是它在许多情况下都失败了:
ab_ doesn't matches whereas it should
ab__c_ matches whereas it shouldn't.
最佳答案
[^__]
匹配一个不带下划线的字符。要断言您的字符串没有两个连续的下划线,可以使用negative lookahead:
^(?!.*__.*)[a-z][a-z0-9_-]+$
环顾四周断言您的字符串不不具有两个连续的下划线
(?!.*__.*)
,然后在断言没有失败的情况下匹配所需的字符串[a-z][a-z0-9_-]+
。关于正则表达式不允许双下划线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12384555/