【问题标题】:convert php regex to java regex将 php 正则表达式转换为 java 正则表达式
【发布时间】:2013-06-26 18:29:25
【问题描述】:

有人可以帮我将 php 正则表达式转换为 java 正则表达式吗?

如果你能帮助我,那就太好了,我将不胜感激,因为我在正则表达式方面不是那么强。

$str = preg_replace ( '{(.)\1+}', '$1', $str )
$str = preg_replace ( '{[ \'-_\(\)]}', '', $str )

我如何理解 php 中的 preg_replace 函数与 java 中的 replaceAll 相同?.. 所以在java代码中会是这样的。

str = str.replaceAll("{(.)\1+}", "$1");
str = str.replaceAll("{[ \'-_\(\)]}", "");

但是这段代码不会起作用,因为我怎么知道 php 中的正则表达式与 java 不同。

请有人帮助我!非常感谢))

更新

最终结果是

str = str.replaceAll("(.)\\1+", "$1");
str = str.replaceAll("[ '-_()]", "");

【问题讨论】:

  • 不要过度逃避。您的第二个模式也可以是 [ '-_()](当然,在 PHP 中您仍然必须转义 ')。
  • 如果你没有使用任何非核心的正则表达式功能,正则表达式在任何地方都是一样的,唯一需要注意的是你是否需要加倍(转义)反斜杠,多线行为等

标签: java php regex


【解决方案1】:

对于这个 PHP 正则表达式:

$str = preg_replace ( '{(.)\1+}', '$1', $str );
$str = preg_replace ( '{[ \'-_\(\)]}', '', $str )

在 Java 中:

str = str.replaceAll("(.)\\1+", "$1");
str = str.replaceAll("[ '-_\\(\\)]", "");

我建议您提供您的输入和预期输出,然后您将获得关于如何在 PHP 和/或 Java 中完成它的更好答案。

【讨论】:

  • 谢谢!))是的!当然,当我知道它时,我会添加输入字符串的示例。这个时候不知道是什么)
【解决方案2】:

与 Java 正则表达式的唯一区别是您必须转义反斜杠。

str = str.replaceAll("(.)\\1+", "replacerString");
str = str.replaceAll("[ \\'-_\\(\\)]", "");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多