[英]Java regex pattern overmatching(Pattern matches one sequence instead of two)
當我寫:“ integralfrom1to10ofx ^ 2)+ integralfrom1to10ofx ^ 3)”時,
我期待我的正則表達式:
// INTEGRAL BASIC
Pattern integralFinalPattern = Pattern.compile("integralfrom(.*)to(.*)of(.*)\\)");
Matcher integralFinalMatcher = integralFinalPattern.matcher(regexDedicatedString);
if(integralFinalMatcher.find()){
String integral_user_input = integralFinalMatcher.group(0);
String integral_lower_index = integralFinalMatcher.group(1);
String integral_upper_index = integralFinalMatcher.group(2);
String integral_formula = integralFinalMatcher.group(3);
String ultimateLatexIntegral = "(\\int_{"+ integral_lower_index
+"}^{"+ integral_upper_index +"} " + integral_formula + ")";
mathFormula = mathFormula.replace(integral_user_input, ultimateLatexIntegral);
}
分別匹配這兩個字符串,但現在將其解釋為一個。 結果,我得到了以下乳膠SVG:
我希望輸出帶有兩個單獨的積分,例如: 我如何使用正則表達式實現這一目標?
顯然,我正在尋找一個想法,使它可以工作兩個以上。
您正在做Matcher類可以為您完成的許多工作。 看看這個:
Pattern p = Pattern.compile("integralfrom(?<upper>.*?)to(?<lower>.*?)of(?<formula>.*?)\\)");
Matcher m = p.matcher(subject);
result = m.replaceAll("\\\\int_{${upper}}^{${lower}} (${formula})");
輸入"integralfrom1to10ofx^2)+integralfrom1to10ofx^3)"
的結果是:
\int_{1}^{10} (x^2)+\int_{1}^{10} (x^3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.