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
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
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
- Coincidencia de direcciones de correo electrónico:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
- Coincide con el número de teléfono móvil:
^1[3-9]\d{9}$
- Número de identificación del partido (18 dígitos):
^\d{17}[\dXx]$
- URL coincidentes:
^(http|https)://[a-zA-Z0-9./?%&=+-_]+$
- Fecha del partido (aaaa-mm-dd):
^\d{4}-\d{2}-\d{2}$
- 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?)$
- 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
- Coincide con el número de teléfono móvil:
^1[3-9]\d{9}$
- Coincidir con el número de identificación (15 o 18 dígitos):
^\d{15}(\d{2}[0-9xX])?$
- Código de crédito social coincidente (18 dígitos):
^[0-9A-Z]{18}$
- URL coincidentes:
^(http|https)://[a-zA-Z0-9./?%&=+-_]+$
- Fecha del partido (aaaa-mm-dd):
^\d{4}-\d{2}-\d{2}$
- 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?)$
- 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}$
- 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}$
- Coincidencia de caracteres chinos:
^[\u4e00-\u9fa5]{0,}$
- Coincidencia de códigos postales:
^[1-9]\d{5}$
- Coincidir con la dirección MAC:
^([0-9a-fA-F]{2}-){5}[0-9a-fA-F]{2}$
- Coincide con el número QQ:
^[1-9][0-9]{4,10}$
- 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}$
- Números enteros coincidentes:
^-?\d+$
- Partido flotadores:
^-?\d+\.\d+$
- Coincide con enteros no negativos:
^\d+$
- Coincide con números de coma flotante no negativos:
^\d+\.\d+$
- Empareja enteros positivos:
^[1-9]\d*$
- Hacer coincidir números de punto flotante positivos:
^[1-9]\d*\.\d+|0\.\d*[1-9]\d*$
- Coincide con enteros no positivos:
^-[1-9]\d*|0$
- 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:
matches
Es 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!