正则表达式和替换

时间:2015-01-21 12:55:17

标签: regex

我对正则表达式相当新,我真的很挣扎。我不能放弃,因为我确信必须有一个简单的答案。

我有一个完整的称呼,如下所示:

Mr A Smith

我想将其转换为Mr Smith。问题是它可能是MR A B SMITHMR A B C SMITH等,甚至已经MR SMITH

为了简化,我假设我只允许MRS

我尝试^((MR|MRS)\s)([A-Z]{1}\s)*([A-Z]{3,})$替换模式为$1$3,但它一直在寻找每个中间首字母为$ 2,$ 3,$ 4等。我需要强制它查看任意一个初始值/空间对仅为2美元,因此姓氏总是3美元。

我正在使用VBScript进行测试,但在工作时将使用VBA。

1 个答案:

答案 0 :(得分:2)

您可以搜索此正则表达式:

(MRS?)(\s+[A-Z])*\s+([A-Za-z]{3,})

并替换为:

$1 $3

RegEx Demo