尝试应用正则表达式以不允许双下划线的字符串

 [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/

10-14 02:22