2012-05-24 18 views
6

tengo esta expresión regular: [\s\S-[<>]]*Comprender la expresión regular [ s S - [<>]] *

Podría usted por favor me ayude a entender qué hace el soporte de esta expresión? Por lo que veo, ¿significa una clase de caracteres formada por espacios y un rango de caracteres no espaciales a < o>?

No tiene mucho sentido ...

¡Gracias!

+0

qué idioma? – Tim

+0

es para Java, se aplica en un patrón de validador XSD:

Respuesta

8

Esta es una variante que solo es compatible con algunos motores de expresiones regulares (.NET, JGSoft, XML Schema y XPath pero no por ejemplo, expresiones nativas de Java regex), y se llama character class substraction.

Por ejemplo,

[A-Z-[EFG]] 

coincide con cualquier carta de A a Z excepto E, F o G.

Pero en su caso, lo que realmente no tiene mucho sentido, porque [\s\S] coincide con cualquier carácter - el mismo resultado (en cualquier sabor de expresiones regulares) se puede lograr mediante

[^<>]* 
+0

¡Gracias! Pero si escribiera [A \ S - [<>]], ¿esto significaría: "el personaje A o cualquier personaje que no sea espacio sin <>"? –

+0

O incluso más simple, ¿[\ S - [<>]] significaría todos los caracteres que no sean espacios sin <>? –

+0

@leadgy: Sí, pero siempre puede escribirlo de manera diferente, por ejemplo '[^ \ s <>]'. –

Cuestiones relacionadas