0
我在Groovy中尋找一個正則表達式組這將符合所有這些和這將有一批在這些例子中匹配指定部分:Groovy的正則表達式與
priority = "4-Not Prioritized Yet"
⇒組:4尚未優先priority != "4-Not Prioritized Yet"
⇒組:4尚未優先priority = High
⇒組:高priority = "2-Medium"
⇒組:2中priority changed
⇒無組priority is EMPTY
⇒無組
我v Ë嘗試了幾種正則表達式模式,如:
/(?i)priority\s*!?=\s*"?([^"]+)"?/
/(?i)priority[^\w]+([^"]+)"?/
- 等
,但我無法找到所有的實例工作的模式。 所以我想知道我的正則表達式有什麼問題,以及 會在所有示例中工作的模式。
我試圖做的恰恰是這樣的:
def str = "{project = "TEST"} AND {priority = "4-Not Prioritized Yet"} OR {priority is EMPTY} OR {priority changed} OR {priority = "2-Medium"} OR {priority = "1-High"} OR {priority = "test"} order by priority DESC"
str.replaceAll(/(?i)\{([^\}]+)\}/) {a, b->
if(b.startsWith("priority")) {
def regex = /(?i)priority([^\w]+)([^"]+)/
def match = (b =~ regex);
/* And now I would like to do something like:
if (match has group)
return b.replace(group, "something else")
else return b */
} else return b;
}
我認爲這很接近......你只需要刪除最後的「如果存在:'priority \ s * [=!] + \ s * \」(。*)' - 編輯格式 – digitaLink
不,這是一個非常不明確的問題。你有'def str =「」「{project =」TEST「} AND {priority =」4-Not Prioritized Yet「}或{priority is EMPTY} or {priority changed} OR {priority =」2-Medium「} {priority =「1-High」}或者{priority =「test」}按優先級排序DESC「」「',對不對?現在,預期的產出是多少?請提供[在小提琴裏面]的預期輸出(http://ideone.com/vLQPRn)。 –