Tormento de expresiones regulares de Java

Creé la siguiente expresión regular condicional que parece funcionar en http://gskinner.com/RegExr/ pero no se compila en Java.

La expresión regular es la siguiente:

X: (\d+). Y: (\d+)(?(?=:inherit=(true|false)))

Y se supone que debe extraer mi valor X, Y y (si existe) el valor seguido de: heredar =

p.ej

X: 192131, Y: 1923123 (matches 192131, 1923123)

X: 192131, Y: 1923123:inherit=true (matches 192131, 1923123, true)

X: 192131, Y: 1923123:inherit=false (matches 192131, 1923123, false)

En Java me sale un error:

Unknown inline modifier near index 20 X: (\d+). Y: (\d+)(?(?=:inherit=(true|false))) 

Con el índice 20 siendo el segundo paréntesis en (?(?

¿Alguien puede ayudarme a hacerlo bien en Java y tal vez también explicar por qué el probador de sitios web lo procesa?

¡Gracias!

Respuesta 1

(?(no es una sintaxis válida .

Utilizar:

X:\s(\d+),\sY:\s(\d+)(?::inherit=(true|false))?

Necesitas escapar \.

Respuesta: 2

En mi aplicación Tomcat eventualmente obtengo errores de "Memoria insuficiente" y "No se puede asignar memoria". Supongo que no tiene nada que ver con el montón, ya que llena completamente la memoria del sistema y estoy ...

Quiero enviar una tarea en un nuevo hilo, y quiero que esta tarea notifique al hilo primario durante sus diversas etapas de ejecución. Algo como se muestra a continuación: descompresión vacía (fuente de ruta, ruta ...

He recibido ayuda sobre cómo agregar el archivo de texto, pero ahora parece que he roto algo más. No puedo "leer" el archivo. Lo que intento hacer es: ingresar datos de los campos de texto de la GUI ...

Estoy haciendo una llamada HTTPRest para enviar los datos a un tercero, mis datos están en el orden de 3 a 10 millones y solo puedo enviar un registro por solicitud junto con nombre de usuario y contraseña para ...