将php正则表达式转换为java正则表达式

时间:2013-06-26 18:29:26

标签: java php regex

有人可以帮我将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("[ '-_()]", "");

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

对于这个PHP正则表达式:

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

在Java中:

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

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