Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在正则表达式中对类的一部分求反?_Javascript_Regex - Fatal编程技术网

Javascript 如何在正则表达式中对类的一部分求反?

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到z的重复大小字母

[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中,它看起来会有所不同。