Comprender profundamente las expresiones regulares de JS --- Agrupación
Escribí un artículo sobre cómo comenzar con expresiones regulares antes. Pensé que estaba relativamente familiarizado con las expresiones regulares, pero hoy me encontré con otro trampa. Tal vez fue porque no tenía el cuidado de la mano. Hoy me centraré en compartir con ustedes la agrupación en JavaScript Expresiones regulares. Si no comprende las expresiones regulares de JS lo suficiente, puede hacer clic aquí para obtener más información.
La agrupación es ampliamente utilizada en regularidad. La agrupación que entiendo es un par de soportes (). Cada par de soportes representa un grupo, y el grupo se puede dividir en:
• Captura de agrupación
• Agrupación no capturante
Captura de agrupación
La captura de la agrupación obtendrá los resultados de la agrupación correspondiente en forma de un segundo término y un tercer término en una función como la ejecución de coincidencias. Echemos un vistazo a un ejemplo primero
var reg =/test (/d+)/; var str = 'nuevo test001 test002'; console.log (str.match (reg)); // ["test001", "001", índice: 4, entrada: "Nuevo test001 test002"]
En el código (/d+) es un grupo (algunas personas también lo llaman subtoterniche), pero todos representan el mismo significado. En el ejemplo anterior, Test001 es el resultado de la coincidencia exacta. Sin embargo, la coincidencia del grupo es encontrar caracteres que coincidan con el sub-Patrón/D+ de todo el resultado de la coincidencia exacta (es decir, TEST001). Aquí es obviamente 001. Pero la situación encontrada hoy es así.
var reg =/test (/d)+/; var str = 'nuevo test001 test002'; console.log (str.match (reg)); // ["test001", "1", índice: 4, entrada: "Nuevo test001 test002"]
La diferencia es que (/d+) se cambia a (/d)+, y todo el resultado coincidente sigue siendo TEST001, pero el resultado de la coincidencia del primer grupo es diferente. Echemos un vistazo a sus diferencias
(/D+) Esta es una situación de agrupación. Dado que, de forma predeterminada, el patrón de coincidencia es un patrón codicioso, es decir, tantas coincidencias posibles de todo /d+, el resultado del partido es 001, y luego se agrega un par de soportes afuera, lo que significa una agrupación, por lo que el resultado del partido en el primer grupo es 001. Veamos ( /d)+ en el segundo ejemplo. Este es también un patrón codicioso. Primero, primero coincidirá con 0 y luego 0 y luego coincidirá con el final de 1. También coincide con el final de este partido. Parece que no hay diferencia entre el partido en el primer ejemplo, pero la agrupación (/d) aquí significa coincidir con un solo número. Según mi comprensión anterior, es 0, pero esta comprensión es incorrecta. Dado que todo el partido es un patrón codicioso, coincidir tanto como sea posible (/D) en el grupo capturará el resultado 1 del último partido. Si se trata de un patrón no verde, coincidirá con lo menos posible.
var reg =/test (/d)+?/; var str = 'nuevo test001 test002'; console.log (str.match (reg)); // ["test001", "0", índice: 4, entrada: "Nuevo test001 test002"]
De esta manera, el resultado coincidente (/d) es 0. Aunque todavía hay resultados que se pueden igualar más tarde, aquí es igualar lo menos posible
Agrupación no capturante
La agrupación no capturante significa que se necesita un par de paréntesis en algunos lugares, pero no quieren que sea un grupo de captura, es decir, no quieren que este grupo se recupere mediante funciones como MacTh Exec. Por lo general, están precedidos por un patrón (?: Patrón) para que se convierta en un grupo no capturante.
var reg =/test (?:/d)+/; var str = 'nuevo test001 test002'; console.log (str.match (reg)); // ["test001", índice: 4, entrada: "Nuevo test001 test002"]
De esta manera, no habrá coincidencia de contenido en el resultado del partido del partido, lo que significa que falta el segundo elemento.
Este artículo se centra en explicar la diferencia entre (/d+) y (/d)+, que también es el pozo en el que he pisado hoy. Si hay algún error, no dude en corregirlos.
El artículo anterior tiene una comprensión profunda de las expresiones regulares de JS: el grupo es todo el contenido que he compartido con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.