Una expresión regular es una fórmula que utiliza un determinado patrón para hacer coincidir un tipo de cadena. Una expresión regular consta de algunos caracteres comunes y algunos metacaracteres. Los caracteres ordinarios incluyen letras y números en mayúsculas y minúsculas, mientras que los metacaracteres tienen significados especiales, ya sea en la plataforma .Net o en la plataforma Java, el significado expresado por las expresiones regulares es el mismo. A continuación analizamos principalmente las funciones de las expresiones regulares de Java. aplicaciones específicas Espero que el artículo le resulte útil y sea solo como referencia.
Desde que jdk1.4 lanzó el paquete java.util.regex, nos ha proporcionado una buena plataforma de aplicación de expresiones regulares Java, porque las expresiones regulares Java son un sistema muy complejo.
// barra invertida
/t intervalo('/u0009')
/n avance de línea ('/u000A')
/r Entrar('/u000D')
/d es numéricamente equivalente a [0-9]
/D no numérico es equivalente a [^0-9]
/s espacio en blanco [/t/n/x0B/f/r]
/S carácter sin espacios en blanco [^/t/n/x0B/f/r]
/w caracteres individuales [a-zA-Z_0-9]
/W caracteres no separados [^a-zA-Z_0-9]
/f carácter de avance de formulario
/e escapar
/b un límite de palabra
/B Un límite sin palabra
/G fin del partido anterior
^ comienza con restricción
^la condición de Java está limitada a caracteres que comienzan con Java
$ es el final de la restricción
La condición java$ se limita a java como carácter final
La condición restringe cualquier carácter excepto /n.
java.. la condición está limitada a dos caracteres cualesquiera después de java, excepto nueva línea
Agregar restricciones específicas "[]"
La condición [az] está limitada a un carácter en el rango de minúsculas de la a a la z
La condición [AZ] está limitada a un carácter en el rango de mayúsculas de la A a la Z
La condición [a-zA-Z] está limitada a un carácter en el rango de minúsculas de a a z o mayúsculas de A a Z
[0-9] La condición está limitada a un carácter en el rango de minúsculas del 0 al 9.
[0-9a-z] La condición está limitada a un carácter en el rango de minúsculas del 0 al 9 o de la a a la z.
[0-9[az]] La condición está limitada a un carácter (intersección) en el rango de minúsculas del 0 al 9 o de la a a la z.
Agregue ^ a [] y luego agregue otra restricción "[^]"
La condición [^az] está limitada a un carácter en el rango de a a z que no son minúsculas
La condición [^AZ] está limitada a un carácter en el rango de A a Z que no son mayúsculas
[^a-zA-Z] La condición está limitada a un carácter en el rango de a a z que no sean minúsculas o de A a Z en mayúsculas.
[^0-9] La condición está limitada a un carácter en el rango de 0 a 9 que no sean minúsculas.
[^0-9a-z] La condición está limitada a un carácter en el rango no minúsculo del 0 al 9 o de la a a la z.
[^0-9[az]] La condición está limitada a un carácter (intersección) en el rango de 0 a 9 o de a a z que no sean minúsculas.
Cuando la condición de restricción es que un carácter específico aparezca más de 0 veces, puedes usar "*"
J* más de 0J
.* 0 o más caracteres
J.* Más de 0 caracteres entre DJ y D
Cuando la condición de restricción es que un carácter específico aparezca más de una vez, puedes usar "+"
J+ 1 o más J
.+ 1 o más caracteres
J.+1 o más caracteres entre DJ y D
Cuando la restricción es que un carácter específico aparezca 0 o más veces, puedes usar "?"
Aparece JA?
Limitar al número especificado de apariciones consecutivas del carácter "{a}"
J{2}JJ
J{3}JJJ
Hay más de un carácter y "{a,}"
J{3,} JJJ,JJJJ,JJJJJ,???(J coexiste más de 3 veces)
Más de caracteres y menos de b caracteres "{a,b}"
J{3,5} JJJ o JJJJ o JJJJJ
Elija uno de los dos "|"
J|AJ o A
Java|Hola Java o Hola
"()" especifica un tipo de combinación <BR>Por ejemplo, si consulto los datos entre <a href></a> en <a href="index.html/">index</a>, se pueden escribir como <a .*href=/".*/">(.+?)</a>
Al utilizar la función Pattern.compile, puede agregar parámetros que controlen el comportamiento de coincidencia de las expresiones regulares de Java:
Patrón Pattern.compile(String regex, int flag)
El rango de valores de la bandera es el siguiente:
Pattern.CANON_EQ Se considera una coincidencia si y sólo si la "descomposición canónica" de los dos caracteres es exactamente la misma. Por ejemplo, después de usar esta bandera, la expresión "a/u030A" coincidirá con "?". Por defecto, no se considera la "equivalencia canónica".
Patrón.CASE_INSENSITIVE(?i)
De forma predeterminada, la coincidencia que no distingue entre mayúsculas y minúsculas solo funciona con el juego de caracteres US-ASCII. Esta bandera hace que las expresiones coincidan independientemente del caso. Para realizar una coincidencia inequívoca de caracteres Unicode, simplemente combine UNICODE_CASE con esta bandera.
Patrón.COMENTARIOS(?x)
En este modo, los caracteres de espacio en las expresiones regulares de Java se ignorarán al realizar coincidencias (Nota del traductor: no se refiere a "//s" en la expresión, pero se refiere a espacios, tabulaciones, retornos de carro, etc. en la expresión). . Los comentarios comienzan con # y continúan hasta el final de la línea. El modo de línea Unix se puede habilitar mediante una bandera integrada.
Patrón.DOTALL(?s)
En este modo, la expresión '.' puede coincidir con cualquier carácter, incluido el final de una línea. De forma predeterminada, la expresión '.' no coincide con los terminadores de línea.
Patrón.MULTILINE(?m)
En este modo, '^' y '$' coinciden con el principio y el final de una línea respectivamente. Además, '^' todavía coincide con el comienzo de la cadena y '$' también coincide con el final de la cadena. De forma predeterminada, estas dos expresiones solo coinciden con el principio y el final de la cadena.
Patrón.UNICODE_CASE(?u)
En este modo, si también habilita el indicador CASE_INSENSITIVE, coincidirá con los caracteres Unicode sin distinguir entre mayúsculas y minúsculas. De forma predeterminada, la coincidencia que no distingue entre mayúsculas y minúsculas solo funciona con el juego de caracteres US-ASCII.
Patrón.UNIX_LINES(?d)
En este modo, sólo '/n' se considera un salto de línea y se compara con '.', '^' y '$'. Dejando de lado los conceptos vagos, aquí hay algunos casos simples de uso regular de Java:
◆Por ejemplo, cuando la cadena contiene validación