[英]string.replaceAll java doesn't work with lookaround regex?
我有一個像這樣的json字符串:
string = "{name={first=sam, last=vo}, hobbies={hobby1=football, hobby2=swimming}}"
我想刪除“ name =“和“ hobby” =”,以便使用以下模式: \\w*\\=(?={)
->使用editPadPro測試
但是,當我在Java中使用全部替換時:
String pattern = "\\w*\\=(?={)";
String removedParent = string.replaceAll(pattern, "");
我收到此錯誤消息
"Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 7
\w*\=(?={)"
您能給我一些建議來完成這項工作嗎?
問候,
山姆
問題是{
字符是正則表達式語法中的特殊字符,表示一個數字(例如\\d{2}
表示2位數字)。 在您的情況下,您想要匹配文字{
,這意味着您需要轉義 {
字符,因此您需要將正則表達式更改為: "\\\\w*\\\\=(?=\\\\{)";
。
對我來說,這產生了:
{{first = sam,last = vo},{hobby1 = football,hobby2 = swimming}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.