Les Espaces De Correspondance Des Expressions Régulières Java

De l'API Java pour les expressions régulières états qui \s va correspondre à un espace. Donc la regex \\s\\s doit correspondre à deux espaces.

Pattern whitespace = Pattern.compile("\\s\\s");
matcher = whitespace.matcher(modLine);
while (matcher.find()) matcher.replaceAll(" ");

Le but de cela est de remplacer toutes les occurrences de deux espaces consécutifs avec un seul espace. Cependant, ce n'est pas réellement le travail.

Suis-je avoir une grave incompréhension de regexes ou le terme "espace"?

  • La chaîne a une fonction replaceAll qui vous permettra d'économiser quelques lignes de code. download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html
  • Ce n'est pas votre incompréhension, mais de Java. Essayez de diviser une chaîne comme "abc \xA0 def \x85 xyz" pour voir ce que je veux dire: il y a seulement trois champs.
  • Avez-vous essayé "\\s+". Avec cela, vous remplacez les deux espaces ou plus pour un.
  • Je me demande depuis plus d'une heure pourquoi mon \\s split est de ne pas fendre sur les espaces. Un million de mercis!
InformationsquelleAutor | 2011-01-19