【问题标题】:Javascript to Java RegexJavascript 到 Java 正则表达式
【发布时间】:2014-05-30 10:35:13
【问题描述】:

我想知道是否有人可以帮助我处理这个正则表达式。当使用正则表达式测试时,我得到了我想要的结果,但是我无法在 Java 中产生同样的结果

/^(?: {4})+(?=.+)/gm

【问题讨论】:

  • 我们需要的远不止这些……您的意见是什么?这两个输出是什么?你想让我做什么?请编辑问题以回答并举例说明。
  • 除了所有这些,这个正则表达式看起来也很可疑
  • 摆脱//gm

标签: java javascript regex


【解决方案1】:

使用Pattern.MULTILINE 作为/m 修饰符(或标志)。并将迭代器用于/g。当然,从你的正则表达式的两端删除分隔符/。请看这个例子:

String input = "...some input...";
Pattern pattern = Pattern.compile("^(?: {4})+(?=.+)", Pattern.MULTILINE);
Matcher m = pattern.matcher(input);

// Using iterator doing the /g part here
while (m.find()) {
    System.out.println(m.group(1));
}

【讨论】:

    【解决方案2】:

    从正则表达式中删除 /gm。这是 javascript 正则表达式而不是 java。
    如果您想将 javascript 正则表达式转换为 java,我们已经在这里有了答案。见How to convert javascript regex to safe java regex?

    【讨论】:

      【解决方案3】:

      应该这样做:

      Pattern regex = Pattern.compile("^(?: {4})+(?=.+)", Pattern.MULTILINE);
      

      【讨论】:

        猜你喜欢
        • 2012-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-21
        • 1970-01-01
        • 2016-09-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多