0

有时我会在我的项目中有一个字符串,它只是一个首字母缩写词(即首字母缩写词),它的所有字母都需要大写。

例如。

str_replace("Mcg","MCG",$string);

这可以很好地完成工作。但是,有时该字符串会包含一个首字母缩写词,该首字母缩写词也是单词的开头。

例如。

str_replace("Wa","WA",$string)

这显然会将“想要”之类的词变成我显然不想要的“想要”。有什么方法我只能更改 2 或 3 个字符的单词吗?我正在考虑将字符串分解成一个数组并从那里开始。还是我应该使用更简单的功能?

4

2 回答 2

1

如果效率不是问题,您可以这样做:

preg_replace("/\bWa\b/","WA",$string)
于 2012-04-19T12:05:29.603 回答
0

使用在单词边界处停止的正则表达式,例如:

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
于 2012-04-19T12:05:36.007 回答