2012-12-06 22 views
10

Mi chiedo cosa faccia questa riga di codice a un url contenuto in una stringa chiamata surl?Che cosa fa l'espressione regolare \ s *, \ s * fa?

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

nascondiamo questo è il surl = "http: // myIpAddress: 8080/Map/MapServer.html" Quali saranno gli Stoken essere?

+7

si divide da "virgole, che può essere circondato da 0 o più spazi bianchi" . Nella tua stringa data, non ci saranno divisioni. –

risposta

15

Ciò regex "\\s*,\\s*" significa:

  • \s* qualsiasi numero di caratteri spazio
  • una virgola
  • \s* qualsiasi numero di caratteri spazio

che dividere il virgole e consumare spazi entrambi i lati

+1

Le barre rovesciate a doppia escape nelle espressioni regolari di Java sono un dolore reale. –

+1

@tom yeah - Mi piace particolarmente scrivere un letterale bask in una regex: '\\\\' – Bohemian

3
  • \ s sta per "carattere spazio bianco".
  • Include [\ t \ r \ n \ f]. Ovvero: \ s corrisponde a uno spazio, una scheda, un'interruzione di linea o un feed del modulo.

    \ s *, \ s *

    \ s * - dice zero o più verificarsi di caratteri di spaziatura, seguito da una virgola e poi seguita da zero o più verificarsi di caratteri di spaziatura.

Queste sono chiamate espressioni di mano corta.

Si possono trovare espressione regolare simile in questo sito: http://www.regular-expressions.info/shorthand.html