RegEx для разделения camelCase или TitleCase (для опытных пользователей)

I нашел блестящий RegEx для извлечения части выражения camelCase или TitleCase.

 (?

Он работает, как ожидалось:

  • значение -> значение
  • camelValue -> верблюд / значение
  • TitleValue -> заголовок / значение

Например, с Java:

String s = "loremIpsum";
words = s.split("(?

Моя проблема в том, что он работает не работают в некоторых случаях:

  • Случай 1: VALUE -> V / A / L / U / E
  • Случай 2: eclipseRCPExt -> eclipse / R / C / P / Ext

На мой взгляд, результат должен быть:

  • Случай 1: VALUE
  • Случай 2: eclipse / RCP / Ext

Другими словами, даны n символов в верхнем регистре:

  • если после n символов следуют символы нижнего регистра, группы должно быть: (n-1 символы) / (n-й символ + младшие символы)
  • если n символов находятся в конце, группа должна быть: (n символов).

Есть идеи, как улучшить это регулярное выражение?

76
задан Jmini 29 September 2011 в 13:11
поделиться