正则表达式中的JavaScript插入符号未按预期工作
我需要将降价URL转换为正则表达式中的JavaScript插入符号未按预期工作,javascript,regex,Javascript,Regex,我需要将降价URL转换为 似乎插入符号在JavaScript中有不同的含义 非常感谢您的帮助。看看这个 \[ ( [^]]* ) # (1) \] \( ( [^\s^\)]* ) # (2) [\s\)] 这是正则表达式的可读、格式化版本 有一些规则管理字符类(非Java/DotNet)的解析 该类已打开且未转义 规则1:下一个未转义的]关闭类 唯一的例外是当它是类中的第一项时[]] 此异常也适用于否定类[^
似乎插入符号在JavaScript中有不同的含义
非常感谢您的帮助。看看这个
\[
( [^]]* ) # (1)
\]
\(
( [^\s^\)]* ) # (2)
[\s\)]
这是正则表达式的可读、格式化版本
有一些规则管理字符类(非Java/DotNet)的解析
该类已打开且未转义
规则1:下一个未转义的]
关闭类
唯一的例外是当它是类中的第一项时<代码>[]]
此异常也适用于否定类[^]
,因为它仍然是班上的第一项 这就是为什么您的正则表达式可以在pcre演示中工作 然而,JS仍然是一个过时的引擎,对于
]
作为第一项。
所以,它必须逃脱<代码>[\]和
[^\]]
在这里查看JS版本
Adendum:
此外,您还可以查看未转义的数据的宽限期是如何/为什么存在的]
当它是第一项时
最初,在设计类解析规则时,似乎是已确定不允许空类
[]
可能是修复状态超出了设计师想要的手柄换句话说,他们希望使解析类成为一个非常低的级别
做一件明智的事 谁知道为什么 这是提示,不允许使用空类。
如果一个
]
紧跟在课程开始之后(第一项),它不可能是关闭的
]
,因为这是非法的空课 但是,由于存在有效的右大括号
[]
,因此不存在歧义,第一项
]
是文字
于是,第一项例外就诞生了
这就是证据:
pcreJS
Python
转到字符类内的转义
]
。另外,请注意,您不必在character类中转义)
,因为它不是特殊的char。感谢您的详细解释@ffox003-不客气。我添加了一个附录,可以进一步阐明这种奇怪的现象。