我需要一个正则表达式,禁止在单词中使用双下划线,但有一个例外:如果末尾加x-则字符串有效。符号顺序不起作用。 例如:
Foo_bar__x = VALID
Foo__bar_x = INVALID
一个字符串可以包含多个下划线和字母数字符号。这是几乎符合我要求的正则表达式,它使“ __”被禁止,但不能处理以__x结尾的情况:
^(?!.*__.*)\w+$
答案 0 :(得分:2)
您可以将正则表达式用于负前瞻:
/^(?!.*__(?!x$))\w+$/
(?!.*__(?!x))
是一个否定的超前行为,当我们得到__
并在输入末尾加上x
以外的任何字符时,就会断言失败。
嵌套负前瞻(?!x$)
用于断言在获得成功匹配之前,双下划线后没有x
。