我怎样才能否定这个表达
How can I negate this expression
我完全不知道如何使用正则表达式。我还不是初学者
我想从字符串中找到任何无效的 css 名称,以便排除它们。在网上查找后,我找到了一种 select 有效名称的方法:
/-?[_a-zA-Z]+[_a-zA-Z0-9-]*/g
我想做的是否定这个表达式,这样在这个例子中只有'1999'匹配输入:
holding-page single 1999 contact id-12 contact single single
对"negate"一个表达式,把它变成负向展望:
/(?<!\S)(?!-?[_a-zA-Z]+[_a-zA-Z0-9-]*)\S+(?!\S)/g
参见 live demo。
它的作用是匹配一个完整的术语,但不匹配您的正则表达式。
A "complete term" 使用 (?<!\S)\S+(?!\S)
匹配,它是 \S+
(一个或多个非空白)包裹在否定环视中而不是非空白以防止匹配 一个词的部分。
请注意 "not a non-whitespace" 与 "whitespace" 不同 而不是 ,因为 "not a non-whitespace" 也匹配输入的开始和结束,因此前导和尾随项无效也会匹配。
您的正面正则表达式已通过将其包含在 (?!...)
中变成负面展望。
我完全不知道如何使用正则表达式。我还不是初学者
我想从字符串中找到任何无效的 css 名称,以便排除它们。在网上查找后,我找到了一种 select 有效名称的方法:
/-?[_a-zA-Z]+[_a-zA-Z0-9-]*/g
我想做的是否定这个表达式,这样在这个例子中只有'1999'匹配输入:
holding-page single 1999 contact id-12 contact single single
对"negate"一个表达式,把它变成负向展望:
/(?<!\S)(?!-?[_a-zA-Z]+[_a-zA-Z0-9-]*)\S+(?!\S)/g
参见 live demo。
它的作用是匹配一个完整的术语,但不匹配您的正则表达式。
A "complete term" 使用 (?<!\S)\S+(?!\S)
匹配,它是 \S+
(一个或多个非空白)包裹在否定环视中而不是非空白以防止匹配 一个词的部分。
请注意 "not a non-whitespace" 与 "whitespace" 不同 而不是 ,因为 "not a non-whitespace" 也匹配输入的开始和结束,因此前导和尾随项无效也会匹配。
您的正面正则表达式已通过将其包含在 (?!...)
中变成负面展望。