2013-06-26 214 views
2

有人可以帮助我将正则表达式转换为java正则表达式吗?将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("[ '-_()]", ""); 
+1

不要越过你需要逃脱。你的第二种模式可能就是'['-_()]'(尽管在PHP中你当然必须逃避'''')。 –

+0

如果你没有使用任何非核心的正则表达式的功能,正则表达式在任何地方都是一样的,唯一需要注意的是你是否需要加倍(逃避)反斜杠或多行行为等。 – Patashu

回答

2

对于这个PHP正则表达式:

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

在Java:

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

我建议你提供你的输入和预期的输出,那么你会得到它如何能够更好的答案在PHP和/或Java中完成。

+0

谢谢!))是的!当然我会在知道它的时候添加输入字符串的例子。这时我不知道它是什么) – falcon

2

与Java正则表达式唯一的区别是,你必须逃离反斜杠。

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