首页 > 解决方案 > 匹配最后一个空格之前的任何字符

问题描述

我要匹配

String firstName = "CHRIS JAMES MR";
String prefix = "MR"; //mr Mr mR

firstName.matches("^(.*?)(?i)" + prefix + "$")

当前的正则表达式将返回 true,即使它是

JOAmR
JOHN HOMR

其中,不应该。

所以基本上我正在尝试匹配

[anyNumberOfChar][anyNumberOfWhiteSpaces][anyCaseOf "MR"]

我正在使用 java 的 String.matches

标签: javaregex

解决方案


您可以使用单词边界 \b

^(.*?)(?i)\bMR$

firstName.matches("^(.*?)(?i)\\b" + prefix + "$");

演示


推荐阅读