Heim  >  Artikel  >  Java  >  Beispielanalyse des gierigen Mustervergleichs regulärer Ausdrücke in Java-Programmen

Beispielanalyse des gierigen Mustervergleichs regulärer Ausdrücke in Java-Programmen

黄舟
黄舟Original
2017-01-20 11:10:581560Durchsuche

Greedy-Modus wird auch Maximum Matching tr>". Werfen wir einen genaueren Blick. Die Verwendung des Greedy-Modus.

Gieriger Modus:

Die Mengenanzeige ist standardmäßig auf den Greedy-Modus eingestellt, sofern nicht anders angegeben. Der Ausdruck im Greedy-Modus wird weiterhin abgeglichen, bis er nicht mehr abgeglichen werden kann. Wenn Sie feststellen, dass die Ausdrucksübereinstimmungsergebnisse nicht den Erwartungen entsprechen, liegt das wahrscheinlich daran, dass Sie dachten, dass der Ausdruck nur mit den ersten paar Zeichen übereinstimmt, aber in Wirklichkeit handelt es sich um ein gieriges Muster, sodass er weiterhin übereinstimmt.
Gierig und nicht gierig, plus? bedeutet nicht gierig:

var s = '1023000'.match(/(\d+)(0*)/);
s
["1023000", "1023000", ""]
 
var s = '1023000'.match(/^(\d+)(0*)$/);
s
["1023000", "1023000", ""]
 
var s = '1023000'.match(/^(\d+?)(0*)$/);
s
["1023000", "1023", "000"]
 
var s = '1023000'.match(/(\d+?)(0*)/);
s
["10", "1", "0"]

java public void test51(){ String str = "aaa\"bbb\"ccc\"ddd\"eee"; System.out.println(str); str = str.replaceAll("\"(.*)\"", "@"); System.out.println(str); }

Ausgabe:

aaa"bbb"ccc"ddd"eee
aaa@eee

Beispiel 2:

@Test 
 public void test52(){ 
   String str = "aaa\"bbb\"ccc\"ddd\"eee"; 
   System.out.println(str); 
     
   str = str.replaceAll("\"(.*?)\"", "@"); 
   System.out.println(str); 
     
 }

Ausgabe:

aaa"bbb"ccc"ddd"eee
aaa@ccc@eee

Das Obige ist ein Beispiel für den gierigen Mustervergleich regulärer Ausdrücke in Java-Programmen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!