如何使这个正则表达式成为有效的Java正则表达式?
在关于对邮政街道地址进行消毒的调查中,其中一位受访者推荐了以下解决方案:如何使这个正则表达式成为有效的Java正则表达式?,java,regex,Java,Regex,在关于对邮政街道地址进行消毒的调查中,其中一位受访者推荐了以下解决方案: addressString.replace(/^\s*[0-9]+\s*(?=.*$)/,''); 这可能是一个有效的正则表达式调用,但在Java中无效 我尝试将此Java代码更改为以下内容,但未成功: addressString.replaceAll("/^\\s*[0-9]+\\s*(?=.*$)/","") 但该代码对我测试的地址没有影响: 310 W 50th Street 我没有正确地将其转换为Java吗?
addressString.replace(/^\s*[0-9]+\s*(?=.*$)/,'');
这可能是一个有效的正则表达式调用,但在Java中无效
我尝试将此Java代码更改为以下内容,但未成功:
addressString.replaceAll("/^\\s*[0-9]+\\s*(?=.*$)/","")
但该代码对我测试的地址没有影响:
310 W 50th Street
我没有正确地将其转换为Java吗?您需要去掉开头和结尾的正斜杠
将来,你可能会要求澄清答案本身,而不是开始一个新问题。很抱歉,我本来想让给出答案的人自己把它翻译成有效的Java,但是忘了。您不需要Java中的斜杠
addressString.replaceAll("^\\s*[0-9]+\\s*(?=.*$)","")
您需要去掉开头和结尾的斜线:
addressString.replaceAll("^\\s*[0-9]+\\s*(?=.*$)","")
它们用于引用某些语言中的正则表达式,但Java只使用“编辑以支持以数字开头的街道名称: 请尝试以下Java字符串:
"^\\s*[0-9]+\\s*(?=.*$)".
仅供参考,您不需要在结尾处使用
(?=.*$)
@ElRonnoco在回答中纠正了这一点: