理解正则表达式[\ s\S - [<>]]*

shi*_*ght 6 regex

我有这个正则表达式: [\s\S-[<>]]*

能帮助我理解这个表达的含义吗?从我看来它意味着由空格和从非空格字符到<或>的范围组成的字符类?

它没有多大意义..

谢谢!

Tim*_*ker 9

这是只由少数几个正则表达式引擎(.NET,JGSoft,XML架构和XPath而不是例如本地Java正则表达式)支持的一个变种,它叫做字符类减法.

例如,

[A-Z-[EFG]]
Run Code Online (Sandbox Code Playgroud)

匹配来自任何信件AZ除外E,FG.

但在你的情况下,它确实没有多大意义,因为[\s\S]匹配任何字符 - 相同的结果(在任何正则表达式的风格)可以通过

[^<>]*
Run Code Online (Sandbox Code Playgroud)