0
String filter = "startDate:gt(2014-07-31);(status:eq(A)||status:eq(V));endDate:gt(2014-07-31)";
String REGEX_MARKETOFFER_FILTER = "(\\(+){1}([A-Za-z]+):([A-Za-z]+)(\\(+)([a-zA-Z0-9-,:]+)(\\)+)(;|\\|\\|)([A-Za-z]+):([A-Za-z]+)(\\(+)([a-zA-Z0-9-,:]+)(\\)+)";
Pattern p = Pattern.compile(REGEX_MARKETOFFER_FILTER);
Matcher m = p.matcher(filter);
while (m.find()) {
System.out.println(m.group());
}
當我運行上面的代碼,我得到以下的輸出:正則表達式查詢問題
(status:eq(A)||status:eq(V))
不過,我期待這個輸出,而不是:
startDate:gt(2014-07-31)
(status:eq(A)||status:eq(V))
endDate:gt(2014-07-31)
我在做什麼錯誤?
字符串總是看起來像那樣嗎?你只是想在';'分裂嗎? –
對於你的例子,'filter.split(「;」)'就足夠了。 – devnull