Coincidencia de guiones Unicode en expresiones regulares de Java?

Estoy tratando de crear una expresión regular de Java para dividir cadenas del formato general "foo - bar" en "foo" y "bar" usando Pattern.split (). El carácter "-" puede ser uno de varios guiones: el ASCII '-', el guión, el guión, etc. He construido la siguiente expresión regular:

private static final Pattern titleSegmentSeparator = Pattern.compile("\\s(\\x45|\\u8211|\\u8212|\\u8213|\\u8214)\\s");

que, si estoy leyendo la documentación del Patrón correctamente, debería capturar cualquiera de los guiones Unicode o el guión ascii, cuando está rodeado en ambos lados por espacios en blanco. Estoy usando el patrón de la siguiente manera:

String[] sectionSegments = titleSegmentSeparator.split(sectionTitle);

Sin alegría. Para la entrada de muestra a continuación, no se detecta el guión y titleSegmentSeparator.matcher (sectionTitle) .find () devuelve falso.

Para asegurarme de que no me faltaban entidades de caracteres inusuales, utilicé System.out para imprimir información de depuración. La salida es la siguiente: a cada carácter le sigue la salida de (int) char, que debería ser su 'punto de código unicode, ¿no?

Entrada de muestra:

Resumen del estudio (1 de 10) - Competencia

S (83) t (116) u (117) d (100) y (121) (32) S (83) u (117) m (109) m (109) a (97) r (114) y (121) ) (32) ((40) 1 (49) (32) o (111) f (102) (32) 1 (49) 0 (48)) (41) (32) - (8211) (32) C ( 67) o (111) m (109) p (112) e (101) t (116) i (105) t (116) i (105) o (111) n (110)

Me parece que ese guión es el punto de código 8211, que debería coincidir con la expresión regular, ¡pero no lo es! ¿Que está pasando aqui?

Respuestas a la pregunta(1)

Su respuesta a la pregunta