我的项目中不时会有一个字符串,它只是一个首字母缩略词(即首字母),需要以大写形式包含所有字母。
例如
str_replace("Mcg","MCG",$string);
这可以很好地完成工作。但是,有时这个字符串将包含一个也是单词开头的首字母缩写词。
例如
str_replace("Wa","WA",$string)
这显然会将“想要”这样的词语改为“WAnt”,这显然是我不想要的。有什么方法我只能改变2或3个字符的单词吗?我正在考虑将字符串爆炸成数组并从那里开始。或者我应该使用更容易的功能?
答案 0 :(得分:1)
效率不是你可以做的事情:
preg_replace("/\bWa\b/","WA",$string)
答案 1 :(得分:0)
使用在word boundaries上停止的正则表达式,例如:
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