Javascript 如何在正则表达式中对类的一部分求反?
我想在正则表达式中对类的一部分求反。假设我们有一个表达式,它接受从a到z的重复大小字母Javascript 如何在正则表达式中对类的一部分求反?,javascript,regex,Javascript,Regex,我想在正则表达式中对类的一部分求反。假设我们有一个表达式,它接受从a到z的重复大小字母 [a-zA-Z]+ 我怎样才能否定例如H字母 我试过这个[a-zA-Z^H]+但是 我知道我们可以不这样做,但我在类内部寻找一个否定的一般规则 我使用正则表达式的JavaScript风格 更新 下面是一个更具体的例子。下面是表达式:[\w\-\--]。在.NET flavor中,它接受unicode字符,但在JavaScript flavor中不接受。但是,有一个技巧允许表达式也接受unicode字符,\w
[a-zA-Z]+
我怎样才能否定例如H
字母
我试过这个[a-zA-Z^H]+
但是
我知道我们可以不这样做,但我在类内部寻找一个否定的一般规则
我使用正则表达式的JavaScript风格
更新
下面是一个更具体的例子。下面是表达式:[\w\-\--]
。在.NET flavor中,它接受unicode字符,但在JavaScript flavor中不接受。但是,有一个技巧允许表达式也接受unicode字符,\w
必须替换为此表达式([^\x00-\x7F]|\w)
问题是-它不能嵌套在第一个表达式中(
[\w\-\–]
)。这就是为什么我要问如何对类的一部分进行否定。通常你会使用类减法
[a-zA-Z--[H]
对于不支持字符类减法(javascript)的引擎,您可以简单地使用负前瞻
((?![H])[a-zA-Z])+
工作示例:
将我的评论翻译成答案。下面是一个正则表达式,可用于对某些字符或范围求反:
/((?:[^\x00-\x7F]|[-\w–])+)/
你想实现什么目标?这看起来像是XY问题。伙计们,他知道他可以用其他方法来解决。首先,你应该在你的问题中添加
Javascript
标记。然后你应该添加一些示例输入和预期输出。对你有用吗?@anubhava就是这样!这不会避免H
。第一部分(?![H])
将查找H
,但不会捕获它,但第二部分[a-zA-Z]+
将捕获H
。忘记括号,这里的fixed通常是指.NET中的。在Java中,它看起来会有所不同。