簡體   English   中英

正則表達式替換IntelliJ中引號不是的字符串

[英]Regex to replace string not in quotes in IntelliJ

我不是很擅長正則表達式的東西,但我想要做的就是替換任何匹配的東西

行動:某事

什么東西不在單引號或雙引號內。

我想用行動取代它:“某事”。

所以,它不應該取代行動:“某事”或行動:'某事',因為那些已經包含引號。 這個東西可以是任何單詞,所以它不是靜態的。 動作:作品永遠是靜態的。

使用捕獲組來完成此任務:

action: (\w+)

並替換為:

action: "$1"

請參閱以下內容: http//regex101.com/r/sP4pP7

action: something
//becomes
action: "something"

顯然,如果你想要更復雜(非單詞字符)的東西,它會發生變化。 你可以使用這樣的東西:

^action: ([.-\w]+)$

這將確保字符串以action:開頭action: via ^ ),以及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\""));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM