Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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,我需要将降价URL转换为 似乎插入符号在JavaScript中有不同的含义 非常感谢您的帮助。看看这个 \[ ( [^]]* ) # (1) \] \( ( [^\s^\)]* ) # (2) [\s\)] 这是正则表达式的可读、格式化版本 有一些规则管理字符类(非Java/DotNet)的解析 该类已打开且未转义 规则1:下一个未转义的]关闭类 唯一的例外是当它是类中的第一项时[]] 此异常也适用于否定类[^

我需要将降价URL转换为

似乎插入符号在JavaScript中有不同的含义

非常感谢您的帮助。

看看这个

 \[
 ( [^]]* )                     # (1)
 \]
 \(
 ( [^\s^\)]* )                 # (2)
 [\s\)]
这是正则表达式的可读、格式化版本

有一些规则管理字符类(非Java/DotNet)的解析

该类已打开且未转义

规则1:下一个未转义的
]
关闭类

唯一的例外是当它是类中的第一项时<代码>[]]

此异常也适用于否定类
[^]
,因为
它仍然是班上的第一项

这就是为什么您的正则表达式可以在pcre演示中工作

然而,JS仍然是一个过时的引擎,对于
]

作为第一项。
所以,它必须逃脱<代码>[\]和
[^\]]

在这里查看JS版本

Adendum:

此外,您还可以查看未转义的数据的宽限期是如何/为什么存在的
]
当它是第一项时

最初,在设计类解析规则时,似乎是
已确定不允许空类
[]

可能是修复状态超出了设计师想要的
手柄换句话说,他们希望使解析类成为一个非常低的级别
做一件明智的事

谁知道为什么

这是提示,不允许使用空类。
如果一个
]
紧跟在课程开始之后(第一项),
它不可能是关闭的
]
,因为这是非法的
空课

但是,由于存在有效的右大括号
[]
,因此不存在歧义,
第一项
]
是文字

于是,第一项例外就诞生了

这就是证据:

pcre
JS
Python

转到字符类内的转义
]
。另外,请注意,您不必在character类中转义
,因为它不是特殊的char。感谢您的详细解释@ffox003-不客气。我添加了一个附录,可以进一步阐明这种奇怪的现象。