Utf8 regex correcto para CamelCase (WikiWord) en perl
Aquí había una pregunta sobre elCamelCase regex. Con la combinación detchrist post Me pregunto cuál es la @ correc utf-8 CamelCase.
Comenzando con la expresión regular (brian d foy's):
/
\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
y modificando a:
/
\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
Tiene un problema con las líneas marcadas '###'.
demás, cómo modificar la expresión regular cuando se supone que los números y el guión bajo son equivalentes a letras minúsculas, entonces W2X3 es una palabra CamelCase válida.
Actualizado (comentario anterior)
para el siguiente
any
: significa "mayúscula o minúscula o número o guión bajo"La expresión regular debe coincidir con CamelWord, CaW
start con letra mayúsculaopcional any letra minúscula o número o guión bajoopcional anyletra mayúsculopcional anyPor favor, no marque como duplicado, porque no lo es. Los pregunta original (y las respuestas también) pensaban solo ascii.