尝试应用正则表达式,不允许带有双下划线的字符串
[a-z][a-z0-9_-]+[^__]
Run Code Online (Sandbox Code Playgroud)
但它在很多情况下都失败了:
ab_ doesn't matches whereas it should
ab__c_ matches whereas it shouldn't.
Run Code Online (Sandbox Code Playgroud)
[^__]
匹配一个不是下划线的字符.要声明您的字符串没有两个连续的下划线,您可以使用否定前瞻:
^(?!.*__.*)[a-z][a-z0-9_-]+$
Run Code Online (Sandbox Code Playgroud)
外观断言你的字符串没有两个连续的下划线(?!.*__.*)
,然后如果断言没有失败则匹配你需要的字符串 - [a-z][a-z0-9_-]+
.