2009-10-16 6 views

Répondre

4
yourstring.replaceAll("\\.([A-Z])",". $1") 
+0

merci - c'est ça - ne pouvait pas comprendre comment faire l'arrière ref. –

2

Vous pouvez essayer le s/\.([A-Z])/. \1/g regex, comme ceci:

myString.replaceAll("\\.([A-Z])", ". $1"); 

Pour plus, voir la classe Pattern et String.replaceAll. Notez que les antislashs doivent être eux-mêmes échappés, d'où les doubles barres obliques inverses.

+0

Salut Stephan - grâce à l'aide - mais pas tout à fait (= [AZ]?): La deuxième arg à replaceAll est une chaîne littérale, et non une expression régulière, donc l'arbitre de retour \\ 1 n'est pas interprété –

+0

@Richard: Tu as raison. Je viens de le remarquer après l'avoir testé. Je l'ai réparé. (Initialement j'ai écrit le code en regardant simplement la documentation, que j'ai apparemment mal interprétée.) – Stephan202

+0

ok! cela fonctionne avec 1 $. Je n'aurais jamais compris cela .... acclamations –

0

pourquoi ne pas utiliser lookahed positif?

(\\\.)

Questions connexes