2012-03-26 17 views

Antwort

14

Diese Stringliteral:

"\\[.+?\\]" 

bedeutet diese Zeichenfolge:

\[.+?\] 

So dieser Ausdruck:

Pattern.compile("\\[.+?\\]"); 

diese regex bedeutet:

\[.+?\] 

was bedeutet "ein Literal [, gefolgt von einem oder mehreren Zeichen — vorzugsweise so wenige wie möglich — gefolgt von ]". (. bedeutet "ein beliebiges anderes Zeichen als Newline"; +? bedeutet "eine oder mehrere von dem, was ich gerade sagte, und vorzugsweise so wenige wie möglich".) Insgesamt entspricht die Regex [____], wobei ____ alles sein kann, was nicht enthält eine neue Zeile, solange sie mindestens ein Zeichen lang ist; und wo ____wird nicht (normalerweise) ein ] außer möglicherweise als das allererste Zeichen enthalten. Weitere Informationen über Pattern und Regexes in Java finden Sie unter the documentation for the Pattern class.

+1

Sehr gute Erklärung. Vor allem der Eckfall, in dem die Regex mit "[] ..." übereinstimmt, ist wichtig zu erwähnen. –

+0

genial, danke! – user1291453

+0

@ user1291453: Gern geschehen! – ruakh