我不是在正則表達式的東西非常好,但我想要做的是替換匹配正則表達式替換字符串沒有引號的IntelliJ
行動什麼:什麼
,其中一些是不在單引號或雙引號內。
我想用動作替換它:「某事」。
因此,它不應該取代行動:「某事」或行動:「某事」,因爲那些已經包含引號。這個東西可以是任何單詞,所以它不是靜態的。動作:作品永遠是靜態的。
我不是在正則表達式的東西非常好,但我想要做的是替換匹配正則表達式替換字符串沒有引號的IntelliJ
行動什麼:什麼
,其中一些是不在單引號或雙引號內。
我想用動作替換它:「某事」。
因此,它不應該取代行動:「某事」或行動:「某事」,因爲那些已經包含引號。這個東西可以是任何單詞,所以它不是靜態的。動作:作品永遠是靜態的。
使用捕捉組來實現:
action: (\w+)
,代之以:
action: "$1"
看到它在行動:http://regex101.com/r/sP4pP7
action: something
//becomes
action: "something"
顯然,如果你想要的東西更復雜(非單詞字符)它改變。你可以使用這樣的事情:
^action: ([.-\w]+)$
,這將確保該字符串開頭action:
(通過^
),並any word-character, period, or dash
直到字符串($
)結束。
可以使用反向引用
Pattern PATT = Pattern.compile("action:(\\w+)");
System.out.println(PATT.matcher("test action:word").replaceFirst("action:\"$1\""));
System.out.println(PATT.matcher(" bla action:\"quoted\" bla").replaceFirst("action:\"$1\""));
看來你錯過了一個逗號那裏。 – jackrabbit
@jackrabbit大聲笑,沒有我鍵入',',然後寫了'逗號'... *去獲得咖啡因* – brandonscript
@ r3mus真棒,這工作出色。謝謝! – cloudwalker