Quiero construir una expresión regular que coincida con '
o "
y luego coincida con otros caracteres, que termina cuando se corresponde un '
o un "
respectivamente, dependiendo de lo que se encontró en el comienzo. Por lo tanto, este problema parece ser lo suficientemente simple como para resolverlo con el uso de una referencia inversa al final; aquí está por debajo de un cierto código expresiones regulares (que es en Java por lo que importa los caracteres de escape adicionales, tales como la \
antes de la "
):Regex; hacer una referencia inversa de un carácter que NO coincidió en un conjunto de caracteres
private static String seekerTwo = "(['\"])([a-zA-Z])([a-zA-Z0-9():;/`\\=\\.\\,\\- ]+)(\\1)";
Este código va a tratar con éxito con cosas tales como:
"hello my name is bob"
'i live in bethnal green'
El problemas viene cuando tengo una cadena como esta:
"hello this seat 'may be taken' already"
el uso de la expresión regular por encima de él no en la parte inicial al encontrarse '
y luego continuaría y coincidir con éxito 'may be taken'
... pero esto es obviamente insuficiente, necesito que coincida toda la cadena.
Lo que estoy pensando, es que necesito una forma de ignorar el tipo de comillas, que NO se correspondía en el primer grupo, incluyéndolo como un personaje en el conjunto de caracteres del tercer grupo. Sin embargo, no sé de ninguna manera para hacer esto. ¿Hay algún tipo de función de retro-referencia furtiva NO o algo así? ¿Algo que puedo usar para hacer referencia al personaje en el primer grupo que NO se combinó? ¿O de lo contrario algún tipo de solución a mi situación?
Hola y bienvenidos a StackOverflow. Me he tomado la libertad de volver a formatear tu publicación un poco. Puede hacer clic en el enlace editar para ver cómo lo hice. Es muy importante saber si necesita publicar el código ... –