2

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

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

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

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

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

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

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

更新

最终结果是

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

2 回答 2

2

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

str = str.replaceAll("(.)\\1+", "replacerString");
str = str.replaceAll("[ \\'-_\\(\\)]", "");
于 2013-06-26T18:32:31.213 回答
2

对于这个 PHP 正则表达式:

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

在 Java 中:

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

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

于 2013-06-26T18:39:30.207 回答