如何删除字符串中的最后2个单词?

Dav*_*819 2 java

我有一个包含地址的字符串,我想删除最后2个字的邮政编码.

例如 21 Lane Street London W10 2GH

我想删除'W10 2GH'

Bar*_*ers 9

\s*\w+\s+\w+$空字符串替换模式:

String s = "21 Lane Street London W10 2GH";
System.out.println(s.replaceFirst("\\s*\\w+\\s+\\w+$", ""));
Run Code Online (Sandbox Code Playgroud)

生产:

21 Lane Street London
Run Code Online (Sandbox Code Playgroud)

一个简短的解释:

\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
Run Code Online (Sandbox Code Playgroud)