¿Qué son las expresiones regulares? Una expresión regular es un conjunto de caracteres específicos que se definen de antemano, y una combinación de estos caracteres específicos, que forman un conjunto de cadenas de reglas de cuerdas, para expresar una lógica de filtración de la cadena.
给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
可以通过正则表达式,从字符串中获取我们想要的特定部分。
Para facilitar el aprendizaje, recomendamos Regextor, un software de verificación de expresiones regulares, que se puede ver en mi artículo, donde también se recomienda un buen software para Mac.

Las expresiones regulares pueden contener sólo texto ordinario, representado por un ajuste exacto de este texto. Por ejemplo:
La expresión oficial es:song
El texto está disponible en inglés.
Resultados de la búsqueda: xiaosongge,xiaoSongge
Las expresiones regulares son mayúsculas de forma predeterminada, por lo que song no coincide con “Song”. Sin embargo, la mayoría de las implementaciones de expresiones regulares ofrecen una opción para que no se distinga la minúsculas.
. Se usa para hacer coincidir un carácter arbitrario, por ejemplo:
Expresión regular: c.t
El texto está en línea con: cat cet caaat dog
Resultados después de la comparación:cat cet caaat dog
Análisis: c.t coincide con una cadena que comienza con “c” y termina con “t”, con caracteres arbitrarios en el medio.
Asimismo, se puede combinar una serie de caracteres arbitrarios:
Expresiones regulares: c..t
Texto en espera de coincidencia: cat cet caat dog
Resultado de la búsqueda: cat cet caat dog
. contiene un significado especial en una expresión regular, es un carácter especial. .\ es también un carácter especial que puede ser traducido a un carácter especial. Si quieres que coincida con un verdadero carácter “ . ” , es necesario..El símbolo . que representa el verdadero .
Expresión regular: c.t
Texto en espera de coincidencia: cat c.t dog
Resultados después de la correspondencia: catc.t dog
Nota: Como \ también es un carácter especial, para que coincida con un verdadero \, se necesitan dos líneas diagonales.\:
Expresión regular: c\t
Texto en espera de coincidencia: cat c\t dog
Resultados después de la correspondencia: catc\t dog
Y lo mismo que antes. Pero si quisiera hacer una combinación de caracteres específicos, ¿qué haría?[Y [el carácter inicial ].
Expresión regular: c[ab]t
Texto en espera de coincidencia: cat cbt cet
Resultados después de la comparación:cat cbt cet
El análisis:[ab] coincide con “a” o “b”. Así que c[ab]t coincide con “cat” y “cbt” pero no con “cet” 。
En el ejemplo de arriba, si quisiera hacer un ajuste de cet, en[¿Hay más de uno? Entonces si yo quiero que coincida con una pequeña letra arbitraria, ¿es posible que escriba una docena de ellos?[a-z]:
Expresión regular: c[a-z]t
Texto en espera de coincidencia: cat cbt czt c2t
Resultados después de la comparación:cat cbt czt c2t
Análisis: c[a-z]t representa una letra cualquiera de las letras “a” - “z” que comienza con “c” y termina con “t”.
También hay espacios similares:
[0-9] y[0123456789] tiene la misma función. Coincide con todos los números. [A-F] corresponde a las letras mayúsculas de A a F。 [A-Z] corresponde a todas las letras mayúsculas de A a Z. [a-z] corresponde a todos los caracteres en minúscula de a a z. [A-z] corresponde a todos los caracteres de ASCII A a ASCII z, no sólo a todos los caracteres, sino también a los caracteres de A a z en la tabla ASCII, como[Y así sucesivamente). [[A-Za-z0-9] Concuerda con todas las letras y números de las letras y números de las pequeñas letras.
Los conjuntos de caracteres se usan generalmente para especificar un grupo de caracteres que necesitan coincidir. Sin embargo, a veces, se quiere excluir un grupo de caracteres que no se quiere que coincida. Esto se puede lograr negando el conjunto de caracteres. Por ejemplo:
Expresión regular: c[^a-z]t
Texto en espera de coincidencia: cat cbt czt c2t cAt
Resultados después de la correspondencia: cat cbt czt c2t cAt
Análisis: Este es el contrario del ejemplo anterior.[[a-z] coincide con todas las letras minúsculas, mientras que [^a-z] Compare con todos los caracteres que no son minúsculos.
Nota: el carácter ^ descompone todos los caracteres del conjunto de caracteres.
Los caracteres meta tienen un significado especial en las expresiones regulares, y ya hemos hablado de algunos caracteres meta, como por ejemplo.[Y] estos caracteres no pueden expresar directamente su propio significado, por ejemplo, no pueden ser usados directamente[Es una coincidencia.[“Uso. para hacer coincidir”.
Todos los caracteres meta pueden ser precedidos por una traducción en sentido inverso, y cuando se traducen, los caracteres se corresponden a sí mismos en lugar de su significado especial. Por ejemplo,[“Esto es un juego de palabras.[ “:
Expresión regular: a[b
Texto a la espera de una correspondencia: a[b ab a[[b
Resultados después de la comparación:a[b ab a[[b
Nota: \ se usa como un carácter meta, lo que también significa que \ es un carácter meta. Por lo tanto, si se necesita una coincidencia con el verdadero “\”, se puede usar\:
Expresión regular: a\b
Texto a la espera de una correspondencia: a\b a\b a[[b
Resultados después de la correspondencia: a\b a\b a[[b
A veces es posible que necesite coincidir con caracteres en blanco que no se pueden imprimir en el texto. Por ejemplo, si desea encontrar todos los caracteres de Tab, o todos los caracteres de cambio de línea, puede usar los caracteres meta especiales de la siguiente tabla:

Por ejemplo, \r\n coincidirá con una combinación de cambio de ruta de vuelta, representando un cambio de ruta de archivo en Windows. En Linux y Unix, solo se necesita usar \n.
Hay algunos caracteres meta especiales que se pueden usar para hacer coincidir conjuntos de caracteres comunes. Estos caracteres meta se llaman clases de caracteres de coincidencia. Encontrarás muy conveniente usarlos.
Números coincidentes o no ¿Qué es lo que está sucediendo?[0-9] puede coincidir con todos los números. Si no desea coincidir con ningún número, puede usar[La siguiente tabla contiene una lista de los caracteres de las categorías numéricas y no numéricas:

Expresiones regulares: c\dt
Texto en espera de coincidencia: cat c2t czt c9t
Resultados después de la correspondencia: catc2t czt c9t
Expresión regular: c\Dt
Texto en espera de coincidencia: cat c2t czt c9t
Resultados después de la comparación:cat c2t czt c9t
Combinación de caracteres alfabéticos y no alfabéticos
Otros meta caracteres de clase comunes son \w y \W:

Expresión regular: c\wt
Texto en espera de coincidencia: cat c2t czt c-t c\t
Resultados después de la comparación:cat c2t c-t c\t
Expresiones regulares: c\Wt
Texto en espera de coincidencia: cat c2t c-t c\t
Resultados después de la correspondencia: cat c2tc-t c\t
Combinación de espacios en blanco y no en blanco
La última clase de coincidencia que encontramos es una clase en blanco:

Expresiones regulares: c\st
Texto en espera de coincidencia: cat c t c2t c\t
Resultados después de la correspondencia: catc t c2t c\t
Expresiones regulares: c\St
Texto en espera de coincidencia: cat c t c2t c\t
Resultados después de la comparación:cat c t c2t c\t
El signo + significa que coincide con uno o más caracteres. Por ejemplo, a coincide con “a”, y a+ con uno o más “a”.
Expresión oficial: cat
Texto en espera de coincidencia: ct cat caat caaat
Resultados después de la correspondencia: ctcat caat caaat
Expresión regular: ca + t
Texto en espera de coincidencia: ct cat caat caaat
Resultados después de la correspondencia: ctcat caat caaat
Cuando se usa + en un conjunto de caracteres, el símbolo + debe estar fuera del conjunto:
Expresión regular: c[0-9]+t
Texto en espera de coincidencia: ct c0t cat c123t
Resultados después de la correspondencia: ctc0t cat c123t
Análisis: c[0-9]+t representa una cadena de caracteres que comienza con “c” y termina con “t”, con uno o más dígitos en el medio.
Por supuesto que sí.[0-9+] también es una expresión regular legal, pero representa un conjunto de caracteres que contiene los símbolos “0” - “9” y “+”.
En general, los caracteres metales como . y + se usan como significados literales cuando se usan en conjuntos de caracteres, por lo que no es necesario traducirlos.[0-9+] y[0-9+La función es la misma.
Nota: + es un carácter meta y se requiere la traducción para que coincida con “+”+。
Si quieres que coincida con cero caracteres o más, puedes usar*El carácter inicial .
Expresión regular: ca*t
Texto en espera de coincidencia: ct cat caat cbt
Resultados después de la comparación:ct cat caat cbt
Aviso:*El símbolo es un carácter meta. Para poder coincidir con “ * “, se necesita una traducción.*。
? corresponde a un cero o a un carácter. Por lo tanto, ? es muy adecuado para coincidir con un carácter opcional en el texto.
Expresiones regulares: ca?t
Texto en espera de coincidencia: ct cat caat cbt
Resultados después de la comparación:ct cat caat cbt
Nota: El símbolo ? es un carácter inicial. Para poder coincidir con el ?, se necesita una traducción.?。
Las expresiones regulares permiten especificar el número de veces que se puede hacer una coincidencia. El número de veces se puede especificar entre { y } . Nota: { y } también son caracteres de la letra, y se necesitan traducciones cuando se usa el significado literal.
El número exacto de coincidencias Para especificar el número de veces que se debe hacer una correspondencia, puede introducir un número entre { y }. Por ejemplo, { 3 } se corresponde con los caracteres o conjuntos que aparecen 3 veces antes:
Expresión regular: ca{3}t
El texto está en espera de una correspondencia: ct cat caaat cbt
Resultado de la búsqueda: ct catcaaat cbt
Menos de una coincidencia
También podemos especificar solo los valores mínimos que coinciden. Por ejemplo, {2,} significa coincidir 2 o más veces:
Expresión regular: ca {1,} t
El texto está en espera de una correspondencia: ct cat caaat cbt
Resultados después de la correspondencia: ctcat caaat cbt
Combinación entre dimensiones
También podemos usar valores mínimos y máximos para determinar el número de coincidencias. Por ejemplo, {2,3} significa un mínimo de 2 coincidencias y un máximo de 3 coincidencias.
Expresión regular: ca {2,3}t
El texto está en espera de una correspondencia: ct cat caaat cbt
Resultado de la búsqueda: ct catcaaat cbt
Entonces, ¿qué es lo mismo que [0, 1] y que [1, 1]?
Un ejemplo de esto es el siguiente:
Expresión regular: s.*g Sin embargo, la mayoría de los usuarios de la red social no están familiarizados con el tema. Resultados de las partidas: xiao song xiao song Análisis: s.*En lugar de hacer coincidir dos “canciones” como se esperaba, g ha hecho coincidir todo el texto entre la primera “s” y la última “g”.
Esto es porque*Y + es un ajuste avaro. Es decir, las expresiones regulares siempre buscan el mayor ajuste, no el menor, que es intencionado.
Pero si no quieres una coincidencia codiciosa, usa la coincidencia no codiciosa de estas palabras cuantitativas (combina el menor número de caracteres posible). ¿La coincidencia no codiciosa se agrega después de la palabra cuantitativa?:

*¿Cómo es eso?*La versión no codiciada, por lo que se puede utilizar*Para modificar el ejemplo anterior:
Expresión regular: s.?g
Sin embargo, la mayoría de los usuarios de la red social no están familiarizados con el tema.
Resultados de la búsqueda: xiaosong xiao song
Análisis: Se puede ver un s.?g coincidió con dos canciones.
Los caracteres meta que comparan los bordes de la cadena son ^ y $, para el comienzo y el final de la cadena respectivamente.
↑ El uso es el siguiente:
Expresiones regulares: ^ xiao
El texto está disponible en inglés.
Resultados después de la comparación:xiaosong
El texto está disponible en inglés. Resultados de la búsqueda: axiaosong Análisis: ^xiao coincide con las cadenas que comienzan con “xiao”.
$ se usa de la siguiente manera:
La expresión oficial es song$.
El texto está disponible en inglés.
Resultados de la búsqueda: xiaosong
El texto está disponible en español. Resultados de la búsqueda:xiaosonga Análisis: song$ coincide con las cadenas que terminan en “song”.
Utilización compartida:
La expresión regular es: ^[0-9a-zA-Z]{4,}$
Texto en espera de una correspondencia: a1b234ABC
Resultados después de la comparación:a1b234ABC
Texto en espera de coincidencia: + a1b23 = 4ABC Resultado después de la correspondencia: + a1b23=4ABC Análisis:[0-9a-zA-Z]{4,}$ corresponde a una cadena de números o letras cuyo dígito sea mayor que o igual a cuatro dígitos
Nota: ^ si está en el comienzo de la colección, significa negativo; si está fuera de la colección, coincide con el comienzo de la cadena.[^0-9] y ^[Diferencias entre 0-9]
Sin embargo, se puede utilizar el modo multilinea: en el modo multilinea, el motor de expresiones regulares utiliza el signo de cambio de línea como separador de la cadena, ^ para coincidir con el comienzo del texto o el comienzo de una línea, y $ para coincidir con el final del texto o el final de una línea.
Modifique el ejemplo anterior:
La expresión regular es: ((?m) ^[0-9a-zA-Z]{4,}$
Texto en espera de una correspondencia: a1b234ABC +a1b23=4ABC ABC123456
Resultados después de la comparación:a1b234ABC
+a1b23=4ABC
ABC123456
El análisis:[0-9a-zA-Z]{4,}$ va a coincidir con una cadena de números o letras en cada línea, y el número de dígitos es mayor que o igual a cuatro dígitos.
Nota: Si se utiliza el modo multilínea, ((?m) debe colocarse al comienzo de la expresión regular。 (?m) no es compatible en la mayoría de las implementaciones de expresiones regulares. Algunas implementaciones de expresiones regulares también admiten el uso de \A para el inicio de la cadena de coincidencia, \Z para el final de la cadena de coincidencia. Si es compatible, entonces estos caracteres meta tienen la misma función que ^, $. Sin embargo, estos caracteres meta no pueden usar la modificación ((?m) y por lo tanto no se pueden usar en el modo multilineales.
Sin embargo, la mayoría de los usuarios de la plataforma no están familiarizados con la tecnología.