正则表达式:在两个单词之间找到一个空格

时间:2014-09-13 17:46:24

标签: regex

我有这个字符串:

  

Miami 25 JOHN H. DOE 3059715648 Coral Gables

我想使用正则表达式找到以下空格:

Miami 25 [SPACE] JOHN H. DOE 3059715648 [SPACE] Coral Gables

我想忽略John H. Doe之间的所有其他空间

谢谢!

3 个答案:

答案 0 :(得分:2)

我想你想要这样的东西,

(?<=\d)\s+(?=[A-Z])

这将匹配一个数字后的一个或多个空格,并且后面必须跟一个大写字母。

DEMO

答案 1 :(得分:1)

你可以使用lookarounds在给定的字符串中执行此操作,但不确定这背后的逻辑。

(?<=\d)\s+(?=\D)

这断言在字符串中的当前位置,前面是数字,如果成功的空格字符匹配,则后面是任何不是数字的字符。

答案 2 :(得分:0)

(.*?(\\d+)(\\s+)(.*))

Java代码示例:

Pattern p = Pattern.compile("(.*?(\\d+)(\\s+)(.*))");
Matcher m = p.matcher("Miami 25 JOHN H. DOE 3059715648 Coral Gables");
if(m.matches()) {
    //m.group(2) = 25
    //m.group(4) = JOHN H. DOE 3059715648 Coral Gables
}