java - 正则表达式从java中的字符串中删除一些数据?

标签 java android regex

我有一个字符串数据,其中包含一些不需要的文本。我想使用正则表达式从字符串中删除该数据。下面给出了示例数据,我想从中消除关键 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",      
    }
  ]
}

我得到的结果是相同的字符串,因为我的正则表达式无法在 String 中找到匹配的数据。

请帮助我纠正我的正则表达式。

最佳答案

这应该可以解决问题:

json = json.replaceAll("(?s)meth.*?\\},", "");

说明:

  • (?s) 用于多行正则表达式。点 . 也将匹配换行符(等于标志 DOTALL,请参阅 Pattern#DOTALL )。
  • .*? 以非贪婪方式搜索任意字母,直到找到 },

关于java - 正则表达式从java中的字符串中删除一些数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22860409/

相关文章:

java - Java 中的文本操作

java - 如何在不覆盖现有代码的情况下更改自上而下的Web服务

android - 在 Android 中准备 jar 库时无法获取资源布局文件

c - 从输入文件中删除注释的 Lex 程序

javascript - 通过正则表达式 javascript 拆分字符串

java - 如何将 "check"强制转换?

java - 如何在 XML XSLT 转换期间处理 (R) 符号

java - 安卓 : Connection refused at POP3Store

android - Android App 中最用户友好的布局选项

python - 如何转换为日期时间