如何编写既不以$开头也不含inherit、initial子串的正则表达式?
符合要求的正则表达式
适用于支持负向前瞻断言的正则引擎(Python、Java、JavaScript、Go等主流语言的正则模块均支持):^(?!\$)(?!.*(inherit|initial)).+$
若需要忽略大小写匹配inherit、initial子串,可在正则引擎开启不区分大小写修饰符即可,比如JavaScript中写法为:/^(?!\$)(?!.*(inherit|initial)).+$/i
规则说明
^匹配字符串的起始位置(?!\$)负向前瞻断言,限制字符串第一个字符不能是$(?!.*(inherit|initial))负向前瞻断言,限制字符串任意位置都不能出现inherit或initial子串.+匹配1个及以上的任意字符(若需要支持空字符串可替换为.*)$匹配字符串的结束位置,确保是完整匹配整个输入字符串,而非部分匹配
匹配验证示例
可匹配的合法内容:
rgb(0,0,0) #ffffff green
不可匹配的非法内容:
$green inherit initial
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

