Java String Split usando Regex con Escape Character

Tengo una cadena que debe dividirse según un delimitador (:). Este delimitador puede ser escapado por un personaje (diga '?'). Básicamente, el delimitador puede estar precedido por cualquier número de caracteres de escape. Considere la siguiente cadena de ejemplo:

a:b?:c??:d???????:e

Aquí, después de la división, debería dar la siguiente lista de cadenas:

a 
b?:c?? 
d???????:e

Básicamente, si el delimitador (:) está precedido por un número par de caracteres de escape, debería dividirse. Si está precedido por un número impar de caracteres de escape, no debe dividirse. ¿Hay alguna solución para esto con regex? Cualquier ayuda sería muy apreciada.

Una pregunta similar se ha hecho anteriormente aquí, pero las respuestas no funcionan para este caso de uso.

Actualización: La solución con la expresión regular: (?: \ ?. | [^ :?]) * divide correctamente la cadena. Sin embargo, esto también da pocas cadenas vacías. Si se da + en lugar de *, incluso las coincidencias vacías reales también se ignoran. (Por ejemplo: - a :: b da solo a, b)

Respuesta 1

Errmm, sí, esperaba usar el RangeSeekBar en mi aplicación MonoDroid, pero, sinceramente, ni siquiera estoy seguro de si esto es posible / cuál es la mejor opción / ¿por dónde empezar? ¿Necesito portar ...

Me pregunto si es posible seleccionar solo el valor predeterminado de la columna vacía. Tengo una tabla absolutamente vacía y solo quiero seleccionar el valor predeterminado de una de las columnas: es importante para mi JAVA ...

Estoy tratando de hacer la configuración automática de CouchBase: Cluster Admin User Bucket Bucket Servicios de usuario para base de datos (datos, kv, n1ql, índice, fts, búsqueda) Usando el resto de la API todo va bien, pero puedo ver ...

Tengo una aplicación appengine existente. Estoy planeando desarrollar una aplicación de Android con esa aplicación existente. Solo puedo encontrar ejemplos sobre el desarrollo de la aplicación de Android con una nueva aplicación appengine. Ninguna ...