我怎么能否定这个表达

问题描述 投票:-2回答:1

我完全不知道如何使用正则表达式。我不是一个初学者。

我想从字符串中找到任何无效的css名称,所以我可以排除它们。在线查找我找到了一种方法来选择有效的名称:

/-?[_a-zA-Z]+[_a-zA-Z0-9-]*/g

我想要做的是否定这个表达式,以便在这个示例输入中只匹配'1999':

holding-page single 1999 contact id-12 contact single single 
regex-negation
1个回答
2
投票

为了“否定”一个表达方式,将其转为负面展望:

/(?<!\S)(?!-?[_a-zA-Z]+[_a-zA-Z0-9-]*)\S+(?!\S)/g

live demo

这样做是匹配一个完整的术语,但与你的正面正则表达不匹配。

使用(?<!\S)\S+(?!\S)匹配“完整术语”,\S+(?!...)(一个或多个非空白),包裹在负外观中,而不是非空格,以防止匹配术语的一部分。 请注意,“不是非空格”与“空白”不同,因为“非空白”也与输入的开头和结尾相匹配,因此无效的前导和尾随术语也会匹配。

你的正面正则表达被封闭在qazxswpoi中变成了负面展望。

© www.soinside.com 2019 - 2024. All rights reserved.