2012-12-06 31 views
10

Ich frage mich, was diese Codezeile zu einer URL, die in einem String namens Surl enthalten ist, tut?Was macht regulärer Ausdruck \ s *, s *?

String[] stokens = surl.split("\\s*,\\s*"); 

Lets behaupten, dies der surl ist = "http: // myIpAddress: 8080/Karte/MapServer.html" Was wird stokens sein?

+7

spalten durch „Komma, das von 0 oder mehr Leerzeichen umgeben sein kann“ . In Ihrer gegebenen Zeichenfolge wird es keine Aufteilungen geben. –

Antwort

15

Das "\\s*,\\s*" regex bedeutet:

  • \s* eine beliebige Anzahl von Leerzeichen
  • ein Komma
  • \s* eine beliebige Anzahl von Leerzeichen

, die auf Komma und verbrauchen keine Leerzeichen aufgeteilt werden Jede Seite

+1

Doppelt entkommene Backslashes in Java Regexes sind ein königlicher Schmerz. –

+1

@tom yeah - Ich mag es besonders, ein wörtliches baskslash in einer Regex zu schreiben: '\\\\' – Bohemian

3
  • \ s steht für "Leerzeichen".
  • Es enthält [\ t \ r \ n \ f]. Das heißt: \ s entspricht einem Leerzeichen, einer Registerkarte, einer Zeile oder einem Formularvorschub.

    \ s *, \ s *

    \ s * - sagen null oder mehr Vorkommen von Leerzeichen, gefolgt von einem Komma und dann von Null oder mehr Vorkommen von Leerzeichen gefolgt.

Diese Ausdrücke werden Kurzhandausdrücke genannt.

Sie können ähnlichen regex in dieser Website finden: http://www.regular-expressions.info/shorthand.html

Verwandte Themen