[英]In java replace the regex with string
在java中,我使用正則表達式\\".*?\\"
。 我用它來用一個術語字符串替換所有帶有雙引號的字符串。
Ex:
INPUT: Functions.unescapeJson("test")
Result : Functions.unescapeJson("String")
但是現在我想排除一些包含雙引號的字符串。 所以,我使用/
作為轉義字符。 如何實現這一目標。
Ex:
INPUT: Functions.getJsonPath(Functions.getJsonPath(Functions.getJsonPath(Functions.unescapeJson("test"), "m2m:cin.con"),"payloads_ul.dataFrameOutput"),"[/"Dimming Value/"]")
RESULT: Functions.getJsonPath(Functions.getJsonPath(Functions.getJsonPath(Functions.unescapeJson(String), String),String),String)
但是如果我使用以前的正則表達式,我得到的結果是:
Functions.getJsonPath(Functions.getJsonPath(Functions.getJsonPath(Functions.unescapeJson(input.mIntegerm/:sgn.nev.rep), String),String),StringDimming ValueString)
如果找到/
它應該忽略而不替換原始字符串,如何使用正則表達式實現這一點。
我正在使用的代碼
public static void main(String[] args) {
String STRINGVALIDATIONREGEX = "\".*?\"";
String formula = "Functions.getJsonPath(Functions.getJsonPath(Functions.getJsonPath(Functions.unescapeJson(input.m2m/:sgn.nev.rep), \"m2m:cin.con\"),\"payloads_ul.dataFrameOutput\"),\"[\"Dimming Value\"]\")";
System.out.println(formula.replace(STRINGVALIDATIONREGEX, "String"));
}
您可以使用此正則表達式:
\"(\/?.)*?\"
使用 [^/] 匹配不是斜杠的任何內容。
例如, [^/]?\\".*[^/]?\\" 將捕獲前面沒有 / 的引號
"((?:[^"]|(?<=\/)")*)"
"
匹配一個"
[^"]
匹配一個非引號字符|
或者(?<=\\/)")
前面有/
的引號字符*
匹配子表達式 2 - 4 次或多次。"
匹配一個"
如果您認為諸如"abc/"
類的字符串無效,那么您應該使用更嚴格的正則表達式:
"((?:[^"\/]|\/")*)"
"
匹配"
[^"\\/]
匹配任何不是/
引號的字符|
或者\\/"
匹配一個/"
組合*
匹配子表達式 2 - 4 次或多次。"
匹配一個"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.