Saltar al contenido principal

pattern

El elemento pattern se utiliza para definir un patrón de expresión regular para un tipo de datos.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="matricula">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{4}[A-Z]{3}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>

El atributo value recoge la expresión regular que permite validar el contenido del elemento o atributo.

En el ejemplo, se indica que la cadena de texto debe contener 4 dígitos seguidos de 3 letras mayúsculas. Por simplificar, estamos suponiendo que una matrícula puede tener cualquier letra mayúscula.

Caracteres especiales

La letra Ñ y las letras con tildes no se incluyen dentro del rango [A-Z] (letras mayúsculas de la A a la Z). Esto es debido a que el rango tomado es el del abecedario inglés. Si se quieren tener en cuenta esos caracteres, debemos indicarlos a mayores.

El rango [A-Z] incluye 26 caracteres:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

El rango [a-z] incluye los mismos caracteres, pero en minúsculas:

abcdefghijklmnopqrstuvwxyz

Valores válidos serían los siguientes:

<matricula>2907KGP</matricula>
<matricula>0000ABC</matricula>
<matricula>1658DBZ</matricula>
<matricula>0585TGU</matricula>

Valores no válidos serían los siguientes:

<matricula>123HÑC</matricula>
<matricula>123ÉAB</matricula>
<matricula>123HTOC</matricula>
<matricula>CJS3791</matricula>
<matricula>HLIV RTG</matricula>
<matricula>20112 GNO</matricula>

Expresiones regulares

Una expresión regular es una secuencia de caracteres que se utiliza para definir un patrón. También se conocen como regex (regular expression).

Las expresiones regulares se basan en un conjunto de reglas y símbolos especiales que permiten definir patrones de manera precisa.

En la siguiente tabla se muestran algunas de las expresiones más habituales para construir patrones. En la última columna (Ejemplo), se muestran subrayadas las concidencias que se obtienen de los patrones de ejemplo. Las palabras que aparecen sin subrayar es que no obtuvieron ninguna coincidencia.

ExpresiónDefiniciónPatrón de ejemploEjemplo
textoBusca la secuencia de carácteres indicada.amProgramación
Amar
Camión
^Busca el elemento al inicio de una línea.^ZZapato
Zafiro
Corral
$Busca el elemento al final de una línea.a$María
Silla
Oso
*Busca el elemento anterior a * desde ninguna hasta varias veces.An*Aval
Ana
Anna
On Air
Online
+Busca el elemento anterior a + desde 1 a varias veces.An+Aval
Ana
Anna
On Air
?Busca el elemento anterior a ? ninguna o una vez.An?Aval
Ana
Anna
On Air
Online
.Busca cualquier carácter, exepeto el de nueva línea. Es un comodín que substituye a un carácter.A.aAna
Asa
Anna
amar
Amar
\El carácter que va después de \ es convertido en carácter especial o, si ya lo es, deja de serlo.web\.esweb.es
paginaweb.es
[patrón]Busca cualquier carácter del conjunto indicado entre [ y ].[cps]alapala
sala
cala
ala
[^patrón]Busca cualquier carácter que no esté en el conjunto indicado entre [ y ][^AEIOU]Palanca
Hoy
Amarillo
[a-z]El guión simboliza un rango.[a-m]Palanca
Hoy
Amarillo
{num}Busca el elemento indicado antes de {num} tantas veces como indique num.a{3}aaa
baaa
aaaaaaaabaaa
eee
{min,max}Busca el elemento indicado antes de {min,max} tantas veces como indique el rango min y max, ambos incluidos.a{2,3}aaa
baaa
aaaaabaaa
a
eee
\bBusca la palabra exacta, siempre situado en el límite de la palbra, normalmente un espacio.\bCambia\bCambia de página.
Cambio de ordenador.
\dBusca un dígito del 0 al 9. Tiene el mismo efecto que [0-9]\d8
9
567
a10
\DBusca una coincidencia que no sea un dígito. Tiene el mismo efecto que [^0-9]\D4 páginas
a10
\sBusca un carácter de espacio (espacio en blanco, tabulador, nueva página, salto de línea, etc.)\s4 páginas
a10
\wBusca cualquier carácter de palabra. Tiene el mismo efecto que [a-zA-Z_0-9].\w¿Estás ahí?
Expresión regular
\WBusca cualquier carácter que no sea una palabra. Tiene el mismo efecto que [^\w]\W¿Estás ahí?
Expresión regular
patrón1|patrón2Busca el patrón 1 o el patrón 2. Tiene el mismo efecto que [patrón1patrón2].a|zZoo
Capaz
patrón1(?=patrón2)Busca el patrón 1 solo si le sigue el patrón 2. El patrón 2 no formará parte de la ocurrencia encontrada.Hojas (?=pares)Hojas pares
Hojas impares
Números pares
Practicar expresiones regulares

Para practicar las expresiones regulares, se pueden utilizar las siguientes herramientas online:

En ellas, se pueden probar qué ocurrencias se detectan en una cadena de texto a partir de una expresión regular. Además, se ofrece una explicación detallada de la expresión regular introducida.

Las expresiones regulares son válidas para cualquier lenguaje de programación (siempre que soporte esta característica). Se pueden utilizar, incluso, en editores de texto para buscar patrones en el código fuente.