如何使这个正则表达式成为有效的Java正则表达式?

时间:2010-09-03 15:29:17

标签: java regex

在关于消毒邮政街道地址的an earlier question I asked中,其中一位受访者推荐了此解决方案:

addressString.replace(/^\s*[0-9]+\s*(?=.*$)/,'');

这可能是一个有效的正则表达式调用,但在Java中无效。

我尝试通过将其更改为以下内容来尝试创建此有效Java代码,但未成功:

addressString.replaceAll("/^\\s*[0-9]+\\s*(?=.*$)/","")

但是这段代码对我测试的地址没有影响:

310 W 50th Street

我没有正确地将其翻译成Java吗?

4 个答案:

答案 0 :(得分:5)

您不需要Java中的斜杠。

addressString.replaceAll("^\\s*[0-9]+\\s*(?=.*$)","")

答案 1 :(得分:3)

你需要在开头和结尾取出斜杠:

addressString.replaceAll("^\\s*[0-9]+\\s*(?=.*$)","")

它们用于引用某些语言的正则表达式,但Java只使用“”

答案 2 :(得分:1)

你需要在开头和结尾摆脱正斜杠。

对于未来,您可能会要求澄清答案本身,而不是开始一个新问题。我道歉,我打算请那个给出答案的人自己把它翻译成有效的Java但是忘了。

答案 3 :(得分:0)

编辑以支持以数字开头的街道名称:

尝试以下Java字符串:

"^\\s*[0-9]+\\s*(?=.*$)".