Básicamente, quiero hacer esto:
Texto y texto de texto. Texto de texto. y texto (No coincida con este "Y").
Texto y texto de texto. y texto (Haga coincidir este "Y".)
En este momento, tengo esta expresión regular: .*\b(and)\b.*\. And
. Pero coincide con ambos And
en el ejemplo anterior: https://regexr.com/65k52
¿Cómo modificar esta expresión regular para que solo coincida con And
si la oración anterior tiene and
?
Si quieres usar .
+ espacios en blanco como una secuencia de separación de oraciones que puede usar
(?=\S)[^.]*(?:\.(?!\s)[^.]*)*?\band\b[^.]*(?:\.(?!\s)[^.]*)*\.\s+And\b (?=\S)(?:[^.]|\.(?!\s))*?\band\b(?:[^.]|\.(?!\s))*\.\s+And\b
Vea la demostración de expresiones regulares n.° 1 y la demostración de expresiones regulares n.° 2 . Detalles :
(?=\S)
- el siguiente carácter debe ser un espacio que no sea en blanco(?:[^.]|\.(?!\s))*?
- cero o más (pero la menor cantidad posible) de ocurrencias de cualquier carácter que no sea .
o un .
que no va inmediatamente seguido de espacios en blanco\band\b
- palabra completa and
(?:[^.]|\.(?!\s))*
- cero o más (pero tantas como sea posible) apariciones de cualquier carácter que no sea .
o un .
que no va inmediatamente seguido de espacios en blanco\.
- un punto\s+
- uno o más espacios en blancoAnd\b
- una palabra completa And
.