Здесь был вопрос о CamelCase regex .С комбинацией tchrist post мне интересно, что является правильным utf-8 CamelCase .
Начиная с (Брайан Д. Фой) регулярное выражение:
/
\b # start at word boundary
[A-Z] # start with upper
[a-zA-Z]* # followed by any alpha
(?: # non-capturing grouping for alternation precedence
[a-z][a-zA-Z]*[A-Z] # next bit is lower, any zero or more, ending with upper
| # or
[A-Z][a-zA-Z]*[a-z] # next bit is upper, any zero or more, ending with lower
)
[a-zA-Z]* # anything that's left
\b # end at word
/x
и изменение на:
/
\b # start at word boundary
\p{Uppercase_Letter} # start with upper
\p{Alphabetic}* # followed by any alpha
(?: # non-capturing grouping for alternation precedence
\p{Lowercase_Letter}[a-zA-Z]*\p{Uppercase_Letter} ### next bit is lower, any zero or more, ending with upper
| # or
\p{Uppercase_Letter}[a-zA-Z]*\p{Lowercase_Letter} ### next bit is upper, any zero or more, ending with lower
)
\p{Alphabetic}* # anything that's left
\b # end at word
/x
Возникла проблема со строками, помеченными '###'.
Кроме того, как изменить регулярное выражение, предполагая, что числа иподчеркивания эквивалентны строчным буквам, поэтому W2X3 является допустимым словом CamelCase.
Обновлено: (комментарий ysth)
для следующего,
any
: означает «прописные или строчные буквы или цифры или подчеркивания»
Регулярное выражение должно соответствовать CamelWord, CaW
- начинаться с заглавной буквы
- необязательно любое
- строчная буква или цифра или подчеркивание
- необязательно любое
- заглавная буква
- необязательно любое
Пожалуйста, не отмечайте как дубликат, потому что это не так. оригинальный вопрос (и ответы на него тоже) считаются только ascii.