J'ai cette chaîne:Faire la première minuscule de caractère et de l'espace avec regex souligner
Fuel surcharge
que j'aime se transformer en
fuel_surcharge
utilisant l'expression rationnelle. Mon regex correspondant ressemble à ce
\b([A-Z])|(\s)
et il me donne les deux matches dont j'ai besoin.
Ensuite, j'essaie cette remplacer regex
\L\1_\2
Avec la logique que le premier match devrait être modifié en minuscules et le deuxième match doit être remplacé par _
Mais le résultat que je « m est donné
f_uel_ surcharge
Je regarde comme je Je ne suis pas capable d'isoler le deuxième match. Dois-je joindre le _
dans l'expression regex de remplacement?
Here est un lien vers la regex j'ai essayé sur regex101.com
. Pour le moment l'expression régulière est pcre
mais potentiellement j'aime l'utiliser dans Java
.
Que diriez-vous juste de 's.toLowerCase(). Replace ('', '_')'? Ou, si vous voulez seulement que le premier caractère devienne minuscule: 's.substring (0, 1) .toLowercase() + s.substring (1) .replace ('', '_')'? –
@JBNizet Merci. Je vais utiliser votre solution si je l'implémente en Java. Maintenant, je suis un peu curieux de le résoudre avec juste regex. – g3blv
'' \ b ([A-Z]) ([a-z] *) (\ s) '' '' \ L \ 1 \ 2_ \ 3' –