我有一些字符串,其中包含的话是捆绑在一起,我需要分开他们了。
此分类下一篇:This Was Cool
我的家在这里
我正在慢慢地了解正则表达式,我相信要做到这一点,我应该使用preg_replace。我的问题是把表达式放在一起来找到匹配。
我只走了这么远
preg_replace('~^[A-Z]~', " ", $string)
字符串
每个字符串都包含很多单词,但只有第一个单词包含成串的单词,因此使用我上面的字符串示例将是
“This WasCool to visit you again”-“This WasCool to visit you again”(再次拜访你真是太酷了)
我已经告诉它从头开始,寻找大写字母,但我不知道如何做的是-限制它只对每个字符串的第一个字-如何在替换部分重复使用大写字母后的空间
5条答案
按热度按时间r3i60tvu1#
问题
1.您的正则表达式
'~^[A-Z]~'
将只匹配第一个大写字母。查看Pattern Syntax中的Meta Characters以了解更多信息。1.您的替换是换行符
'\n'
,而不是空格。解决方案
使用此代码:
字符串
(?<!\ )
是一个assertion,它将确保我们不会在一个大写字母之前添加一个空格,这个大写字母之前已经有一个空格。w7t8yxp52#
字符串
也许运行结果通过ltrim后。
型
hgncfbus3#
这是我的.02c,这个版本将只对第一个字起作用,并将保留字母序列(宝马)。
字符串
iaqfqrcu4#
我对正则表达式并不精通,但我建议使用以下代码:
字符串
看看SirLancelot代码,我有第二个解决方案。我仍然喜欢爆炸解决方案,因为你说你的目标只是字符串的第一个字。
型
jw5wzhpr5#
只是改变了上面的代码对所有的话行动
字符串
//看看我的宝马我昨天买的