API común de JAVA - Expresión regular

Sugerencia: después de escribir el artículo, la tabla de contenido se puede generar automáticamente. Cómo generarla puede consultar el documento de ayuda a la derecha

Directorio de artículos

Tabla de contenido

Directorio de artículos

prefacio

Primero, ¿qué es una expresión regular?

Segundo, símbolos de expresiones regulares

Tres combinaciones de expresiones regulares de uso común

Cuarto, la eficiencia de las expresiones regulares. 

Cinco, aprende a escribir expresiones regulares

coincide con un solo carácter 

Coincidir con varios caracteres editar

Seis, generar complementos de expresiones regulares

prefacio

Hola a todos, lo que más me gusta es la leche animal. Hoy les presentaré las expresiones regulares. ¡Sigan mis pasos para echar un vistazo!


Primero, ¿qué es una expresión regular?

La expresión regular es una herramienta que se usa para hacer coincidir y procesar texto , puede usar algunos símbolos y sintaxis específicos para describir el patrón de una clase de cadenas. En informática y varios lenguajes de programación, las expresiones regulares se utilizan ampliamente en la búsqueda de texto, reemplazo, filtrado, validación, etc. Con las expresiones regulares, podemos hacer coincidir fácilmente el texto que coincide con un determinado patrón, como direcciones de correo electrónico, números de teléfono, URL, etc. Con el fin de realizar varias funciones de procesamiento de texto. Las expresiones regulares se pueden usar en una variedad de lenguajes de programación, incluidos, entre otros, Java, Python, JavaScript, Perl, etc., y se usan ampliamente en programación de computadoras, edición de texto, procesamiento de datos, etc., y son un poderoso y herramienta flexible.


 Segundo, símbolos de expresiones regulares

1. Metacaracteres 
Los metacaracteres son caracteres con un significado especial en las expresiones regulares y se utilizan para hacer coincidir caracteres o conjuntos de caracteres específicos. Los metacaracteres comunes incluyen: .: coincide con cualquier carácter excepto el de nueva línea. 
^: coincide con el comienzo de la cadena. 
$: coincide con el final de la cadena. 
*: Coincide con el carácter anterior cero o más veces. 
+: Coincide con el carácter anterior una o más veces. 
?: Coincide con el carácter anterior cero o una vez. {n}: coincide con el carácter anterior exactamente n veces. 
{n,}: coincide con el carácter anterior al menos n veces. 
{n,m}: coincide con el carácter anterior al menos n veces, pero no más de m veces. 
[]: coincide con cualquier carácter del conjunto de caracteres. 
|: Indica una relación OR, que coincide con cualquiera de dos o más expresiones. 
(): Se utiliza para agrupar, combinar varios elementos en un todo. 
\: Se usa para escapar de los metacaracteres, haciéndolos perder su significado especial. 
2. Caracteres de escape 
Los caracteres de escape se utilizan para convertir metacaracteres en caracteres ordinarios o para convertir caracteres ordinarios en metacaracteres. Los caracteres de escape comunes incluyen: \d: Coincide con un carácter numérico. 
\D: Coincide con caracteres que no son dígitos. 
\w: Coincide con letras, números o caracteres de subrayado. 
\W: Coincide con caracteres que no son letras, números o guiones bajos. 
\s: Coincide con espacios, tabulaciones o saltos de línea. 
\S: Coincide con un carácter que no es un espacio, una tabulación o una nueva línea. 
\b: coincide con un límite de palabra. 
\B: coincide con un límite que no es una palabra. 



\\: coincide con el propio carácter de barra invertida.
Cabe señalar que cuando se utilizan expresiones regulares en Java,
El carácter de barra invertida \ debe escaparse como \\; de lo contrario, se producirá un error de compilación. 
Por ejemplo, para hacer coincidir un carácter numérico, puede usar \d, pero debe escribirse como \\d en Java.

Tres combinaciones de expresiones regulares de uso común

Los siguientes son de uso común

  1. Coincidencia de direcciones de correo electrónico:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
  1. Coincide con el número de teléfono móvil:
^1[3-9]\d{9}$
  1. Número de identificación del partido (18 dígitos):
^\d{17}[\dXx]$
  1. URL coincidentes:
^(http|https)://[a-zA-Z0-9./?%&=+-_]+$ 
  1. Fecha del partido (aaaa-mm-dd):
^\d{4}-\d{2}-\d{2}$
  1. Direcciones IP coincidentes:
^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$
  1. Coincide con el nombre de usuario (comienza con una letra, permite guiones bajos alfanuméricos, la longitud es de 6 a 16 dígitos):
^[a-zA-Z][a-zA-Z0-9_]{5,15}$

Lo siguiente cubre básicamente todos

  1. Coincide con el número de teléfono móvil:
^1[3-9]\d{9}$
  1. Coincidir con el número de identificación (15 o 18 dígitos):
^\d{15}(\d{2}[0-9xX])?$
  1. Código de crédito social coincidente (18 dígitos):
^[0-9A-Z]{18}$
  1. URL coincidentes:
^(http|https)://[a-zA-Z0-9./?%&=+-_]+$ 
  1. Fecha del partido (aaaa-mm-dd):
^\d{4}-\d{2}-\d{2}$
  1. Direcciones IP coincidentes:
^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$
  1. Coincide con el nombre de usuario (comienza con una letra, permite guiones bajos alfanuméricos, la longitud es de 6 a 16 dígitos):
^[a-zA-Z][a-zA-Z0-9_]{5,15}$
  1. Contraseña coincidente (de 8 a 16 caracteres de longitud, debe contener letras y números):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$
  1. Coincidencia de caracteres chinos:
^[\u4e00-\u9fa5]{0,}$
  1. Coincidencia de códigos postales:
^[1-9]\d{5}$
  1. Coincidir con la dirección MAC:
^([0-9a-fA-F]{2}-){5}[0-9a-fA-F]{2}$
  1. Coincide con el número QQ:
^[1-9][0-9]{4,10}$
  1. Haga coincidir el código de WeChat (se permiten letras, números, guiones bajos y guiones, con una longitud de 6 a 20 dígitos):
^[a-zA-Z0-9_-]{6,20}$
  1. Números enteros coincidentes:
^-?\d+$
  1. Partido flotadores:
^-?\d+\.\d+$
  1. Coincide con enteros no negativos:
^\d+$
  1. Coincide con números de coma flotante no negativos:
^\d+\.\d+$
  1. Empareja enteros positivos:
^[1-9]\d*$
  1. Hacer coincidir números de punto flotante positivos:
^[1-9]\d*\.\d+|0\.\d*[1-9]\d*$
  1. Coincide con enteros no positivos:
^-[1-9]\d*|0$
  1. Coincide con números de coma flotante no positivos:
^(-([1-9]\d*\.\d+|0\.\d*[1-9]\d*))|0\.{0,1}$

 


 Cuarto, la eficiencia de las expresiones regulares. 

Si ahora se requiere verificar si un número qq es correcto.

Reglas: 1. Entre 6 y 20 dígitos

           2. 0 no puede estar al principio

           3. Deben ser todos números.

Primero use el conocimiento que ha aprendido hasta ahora para completar los requisitos de verificación y luego experimente la verificación de expresiones regulares.

 

¿Es problemático? No importa si piensas que es problemático o no, de todos modos, creo que es problemático

¿Por qué? ¡Porque sé expresiones regulares!

ven a mostrar


 Cinco, aprende a escribir expresiones regulares

A continuación, te enseñaré a escribir un poco de expresiones regulares. Si no quieres escribir, salta al complemento. Por supuesto, recomiendo a todos que lo entiendan. Después de todo, no hay daño, ¿verdad? ¡Entonces, vamos!

Prefacio:

matchesEs un método en Java que se usa para juzgar si una cadena se ajusta al formato de una expresión regular. Su uso es el siguiente:

String regex = "正则表达式";
String str = "待匹配字符串";
boolean isMatch = str.matches(regex);

coincide con un solo carácter 

        /*
        * 匹配单个字符
        * */

        // 只能是 a b c 中的一个
        System.out.println("a".matches("[abc]"));// true
        System.out.println("?".matches("[abc]"));// false

        // 不能出现 a b c 中的一个
        System.out.println("a".matches("[^abc]"));// true
        System.out.println("?".matches("[^abc]"));// false

        // a到z和A到Z(包括头尾的范围)
        System.out.println("z".matches("[a-zA-z]")); // true
        System.out.println("aa".matches("[a-zA-z]"));//false
        System.out.println("zz".matches("[a-zA-Z][a-zA-Z]")); //true

        // [a-z&&[def]] a-z和def的交集。为:d,e,f
        System.out.println("d".matches("[a-z&&[def]]")); //true
        System.out.println("0".matches("[a-z&&[def]]")); //false
        
        /*
         \表示转义字符
         两个\的理解方式:前面的\是一个转义字符,改变了后面\原本的含义,
         把他变成一个普普通通的\而已。
        */

        //  .  表示任意一个字符
        System.out.println("你".matches("..")); //false
        System.out.println("你".matches(".")); //true
        System.out.println("你我".matches(".."));//true

        // \\d 表示任意的一个数字
        // 简单来记:两个\表示一个\
        System.out.println("a".matches("\\d")); // false
        System.out.println("3".matches("\\d")); // true

        // \\w 只能是一位单词字符[a-zA-Z_0-9]
        System.out.println("z".matches("\\w")); // true
        System.out.println("2".matches("\\w")); // true
        System.out.println("你".matches("\\w"));//false

        // 非单词字符 \\W
        System.out.println("你".matches("\\W")); // true

emparejar varios personajes  

Seis, generar complementos de expresiones regulares

 mira el efecto

 

 

La escritura de las expresiones regulares anteriores es muy superficial para todos, siempre que pueda entenderla, la mayoría de las expresiones regulares se pueden buscar directamente

¡Se puede usar directamente, pero aún es útil entenderlo!

Resumir

Solo necesita comprender y poder usar expresiones regulares para resolver problemas. Lo mejor es poder comprender expresiones regulares y escribir expresiones regulares simples. La próxima vez que vea expresiones regulares, probablemente le hablaré sobre el rastreo. Bueno, espéralo!

 

Supongo que te gusta

Origin blog.csdn.net/weixin_73869209/article/details/130794971
Recomendado
Clasificación