6

I have this regex: [\s\S-[<>]]*

Could you please help me understand what does this expression stand for? From what I see it means a character class formed of spaces and a range from non-space characters to < or >?

It doesn't make much sense..

Thanks!

Tim
  • 13,584
  • 10
  • 64
  • 100
Dan L.
  • 1,677
  • 1
  • 20
  • 40

1 Answers1

10

This is a variant only supported by a few regex engines (.NET, JGSoft, XML Schema and XPath but not for example native Java regex), and it's called character class substraction.

For example,

[A-Z-[EFG]]

matches any letter from A to Z except E, F or G.

But in your case, it really doesn't make much sense because [\s\S] matches any character - the same result (in any regex flavor) can be achieved by

[^<>]*
Tim Pietzcker
  • 313,408
  • 56
  • 485
  • 544