【问题标题】:How do exclude double quota from text by using Java regexp? [duplicate]如何使用 Java 正则表达式从文本中排除双引号? [复制]
【发布时间】:2018-11-09 02:00:35
【问题描述】:

我需要替换类似

的文本
test 1 | test "2" | test 3 

test 1 | test 2 | test 3

我检查了像([^"]*) or (?>([^"])) 这样的正则表达式模式,但是没有用。我基本上使用this站点来验证结果。

非常感谢任何提示!

谢谢, 西穆尔

【问题讨论】:

  • 你的意思是input = input.replace("\"", "");
  • 为什么一定要正则表达式?
  • input = input.replaceAll("\"(\\d+)\"", "$1");
  • 我只需要一个有效的正则表达式,它可以从源文本中“生成”所需的文本。要求是只使用正则表达式,而不是 Java 方法
  • 可能是要求是错误的,因为我没有发现任何关于正则表达式的内容,它可以在不包括双重配额的情况下摘录整个文本。

标签: java regex


【解决方案1】:

尝试以下方法:-

String input =  "test 1 | test \"2\" | test 3";
String output = input.replaceAll("\"(\\d+)\"", "$1");

【讨论】:

    【解决方案2】:

    您可以匹配",在一个捕获组中捕获一个或多个数字(\d+),然后再次匹配"

    然后在替换中使用捕获的组 1。$1

    "(\d+)"

    在 Java 中:String regex = "\"(\\d+)\"";

    Demo Java

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 2015-03-13
      • 1970-01-01
      • 2021-09-04
      相关资源
      最近更新 更多