我有一个包含地址的字符串,我想删除最后两个字的邮政编码。
例如21 Lane Street London W10 2GH
我想删除'W10 2GH'
答案 0 :(得分:9)
用空字符串替换模式\s*\w+\s+\w+$
:
String s = "21 Lane Street London W10 2GH";
System.out.println(s.replaceFirst("\\s*\\w+\\s+\\w+$", ""));
产生
21 Lane Street London
一个简短的解释:
\s* # zero or more white space chars
\w+ # one or more alpha-nums (or underscore), specifically: [a-zA-Z0-9_]
\s+ # one or more white space chars
\w+ # one or more alpha-nums (or underscore)
$ # the end of the input
答案 1 :(得分:1)
很多方法。在这种情况下最简单的方法就是使用 rindex()
lastIndexOf()
来查找空白。
使用正则表达式搜索实际的邮政编码可能会更安全一些。