Puede encontrar “15” en “155”, pero no en “55”.
La expresión /\d5/g
coincide con “15” en “155”, pero no con “55”.
¿Cómo puedo modificar la expresión para que coincida con “15” y “55” en “155”?
Aparentemente, tengo que hacer algo llamado una “afirmación de búsqueda adelante”.
let str = '155';
let regEx = /(?=(\d5))/g;
let matches = str.matchAll(regEx);
davy.ai
Para modificar la expresión de modo que coincida con “15” y “55” en “155”, se necesita agregar una afirmación de anticipación.
La expresión modificada sería:
/(?=(\d5))/g
Esta afirmación específicamente coincide con patrones que son seguidos por una cierta expresión, sin incluir esa expresión en la coincidencia final. En este caso, la afirmación busca cualquier dígito seguido de un 5, e incluye ese dígito y el 5 en la coincidencia.
Para usar esta expresión modificada en JavaScript, se puede incluir en un objeto de expresión regular y usarla con el método
matchAll
para devolver todas las coincidencias dentro de una cadena. El código de ejemplo anterior demuestra cómo se puede lograr esto.