Le mode gourmand est également appelé correspondance maximale. X?, tr>abb", peut-être que le résultat que vous attendez correspond à "
Mode gourmand :
L'indicateur de quantité passe par défaut en mode gourmand, sauf indication contraire. Les expressions en mode gourmand continueront à correspondre jusqu'à ce qu'aucune correspondance ne soit trouvée. Si vous constatez que les résultats de la correspondance d'expression ne sont pas ceux attendus, c'est probablement parce que - vous pensiez que l'expression ne correspondrait qu'aux premiers caractères, mais en fait il s'agit d'un modèle gourmand, donc elle continuera à correspondre.
Gourmand et non gourmand, plus ? signifie non gourmand :
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 aspku.com/kaifa/zhengze/" target="_blank"> Regular L'expression utilise par défaut le mode de correspondance gourmand et gourmand, qui est la correspondance la plus longue de ce type (.*). Si la correspondance la plus courte est requise, elle est remplacée par (.*?), qui est le mode de correspondance réticent. aspku.com/kaifa/zhengze/" target="_blank">正则表达式默认用的是greedy贪婪匹配模式既是这种类型(.*)的最长匹配,如果需要最短匹配则改为(.*?)即是勉强匹配模式。
Analyse du principe :
S'il s'agit d'un mode de correspondance gourmand, le moteur d'expression régulière fera la correspondance jusqu'à la fin de la chaîne. Lorsque la correspondance est fausse, il trouvera la première position correspondante du bas jusqu'à
. retour en arrière. Renvoie le résultat correspondant
Si le modèle correspond à peine, le moteur d'expression régulière fera correspondre le caractère à la fin du modèle, puis remontera un peu plus loin et constatera que la correspondance est fausse, puis reviendra en arrière. pour trouver la correspondance la plus récente renvoyée. La position true renvoie le résultat.
Regardez le code :
Exemple 1 :
public void test51(){ String str = "aaa\"bbb\"ccc\"ddd\"eee"; System.out.println(str); str = str.replaceAll("\"(.*)\"", "@"); System.out.println(str); }
Sortie :
aaa"bbb"ccc"ddd"eee aaa@eee
Exemple 2 :
@Test public void test52(){ String str = "aaa\"bbb\"ccc\"ddd\"eee"; System.out.println(str); str = str.replaceAll("\"(.*?)\"", "@"); System.out.println(str); }
Sortie :
aaa"bbb"ccc"ddd"eee aaa@ccc@eee
Ce qui précède est un exemple de correspondance de modèles gourmands d'expressions régulières dans des programmes Java. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !