我的项目中有时会出现一个字符串,它只是一个缩写词(即缩写),需要将所有字母都大写。
例如。
str_replace("Mcg","MCG",$string);
这很好地完成了工作。然而,有时这个字符串会包含一个首字母缩略词,它也是单词的开头。
例如。
str_replace("Wa","WA",$string)
这显然会将“想要”之类的词变成“WANt”,而我显然不想要这样的词。有什么方法可以只更改 2 或 3 个字符的单词吗?我正在考虑将字符串分解为数组并从那里开始。或者我应该使用更简单的功能吗?
如果效率不是问题,你可以这样做:
preg_replace("/\bWa\b/","WA",$string)
使用在单词边界处停止的正则表达式,即如下所示:
preg_replace('/(\b)Wa(\b)/', 'WA', $string);
这会将所有出现的“Wa”替换为“WA”,只要其左侧或右侧有空格、逗号、点、换行符或没有字符(我确信我在那里丢失了一些字符) ).
这比过滤空白(或空格)更好,因为您可能会遇到以下情况:
He wants -> He wants
WaT -> WaT
Wa -> WA
Do be do be do Wa. -> Do be do be do WA.
Some Wa -> Some WA
Foo Wa Bar -> Foo WA Bar