正则表达式来消除java中字符串中的一些数据?
我有一个字符串数据,其中包含一些不需要的文本。我想使用正则表达式从字符串中删除该数据。下面给出了示例数据,我想从中删除键正则表达式来消除java中字符串中的一些数据?,java,android,regex,Java,Android,Regex,我有一个字符串数据,其中包含一些不需要的文本。我想使用正则表达式从字符串中删除该数据。下面给出了示例数据,我想从中删除键meth及其相应的数据。我为此创建的正则表达式是“meth(S+([\\},])”,但它不起作用 我使用以下代码来使用此正则表达式: json = json.replaceAll("meth(S+)([\\},])",""); 下面是json中存在的字符串数据: { data: [ { "city": "barcelona", "Date"
meth
及其相应的数据。我为此创建的正则表达式是“meth(S+([\\},])”
,但它不起作用
我使用以下代码来使用此正则表达式:
json = json.replaceAll("meth(S+)([\\},])","");
下面是json中存在的字符串数据:
{
data: [
{
"city": "barcelona",
"Date": "4 Apr 2014",
"Name": "A-B",
"meth": function(){
return_LANG=="en-us"?"A-T": "A-T "
},
"fo": "null",
},
{
"city": "Newyork",
"Date": "4 Apr 2014",
"Name": "B-C",
"meth": function(){
return_LANG=="en-us"?"S-E": "शक्तिपुंजएक्स."
},
"fo": "null",
}
]
}
我得到的结果是相同的字符串,因为我的正则表达式无法在字符串中找到匹配的数据
请帮我更正我的正则表达式。这应该可以做到:
json = json.replaceAll("(?s)meth.*?\\},", "");
说明:
用于多行正则表达式。点(?s)
也将匹配新行字符(等于标志
,请参阅)点所有
以非贪婪的方式搜索任何字母,直到它找到*?
},
s = s.replaceAll("(?s)\"meth\":.*?},\\s+","");
它应该将以“meth”:直到“}”开头的值替换为“.”。这不是一个有效的json检查,请给出以下异常:java.util.regex.PatternSyntaxException:索引18附近的regexp模式中的语法错误:(?s)“meth”:。*?}\s+