我有一個用例,我想在給定字符串中搜索<,>,< =,> =和=中的運算符,並將該表達式拆分爲2個部分即正確的表達式和左邊的表達式,並在評估最終的條件運算符之前單獨評估它們。在Java中使用正則表達式貪婪搜索字符串模式
這可以從下面的例子可以理解:
Pattern pattern1 = Pattern.compile("(.*?)(<|>|<=|=|>=)(.*)");
Matcher matcher2 = pattern1.matcher("4>=5");
while (matcher2.find()) {
System.out.println(matcher2.group(1) + ";" + matcher2.group(2)+ ";" + matcher2.group(3));
}
輸出:
4;>;=5
預期的輸出是4;>=;5
但>=
操作者得到了分裂,因爲操作者>
獨立地存在的。
我想以貪婪的方式評估條款(<|>|<=|=|>=)
,以便>=
被視爲單個實體,並在它們一起出現時被列出。
只要把它們放在正確的順序...(<=|> = | = |> | <)。這應該做你想做的。 –
@羅伯特漢森 - 這是一個很好的。它有效,但如果我從列表中獲得這些運營商的列表,該怎麼辦。在這種情況下,我可能不確定訂單。我如何獨立於訂單? –
@RobertHanson:您應該將其作爲答案發布! – ruakh