Estoy tratando de seleccionar una palabra que está en la segunda línea, pero primero necesito verificar si hay una palabra en la primera línea, regex ejemplo:

(?<=isaac)select

Este es el texto

abcdefgisaachijklmnopqrstuvwxyz
abcdefgselecthijklmno

Solo para aclarar un poco mi idea

enter image description here

¿Por qué no funciona esta expresión regular cuando isaac precede a select?

¿Cómo puedo resolver esto?

2
megaultron 5 oct. 2021 a las 03:42

2 respuestas

La mejor respuesta

Puede cambiar issac para que esté en un grupo de no captura y permitir cualquier cosa hasta que select esté presente.

(?s)(?:isaac.*)(select)

El (?s) modifica el operador . para que también permita nuevas líneas.

https://regex101.com/r/qPQH25/1

1
user3783243 5 oct. 2021 a las 01:43

Dado que se dan las dos palabras, no tiene sentido seleccionar la palabra en la segunda línea; basta con determinar si la primera palabra está en la primera línea y la segunda palabra está en la segunda línea.

La expresión regular necesaria es simple:

.*isaac.*\n.*select

¡Enciende tu motor!

0
Cary Swoveland 5 oct. 2021 a las 02:32