$string = "MaryGoesToSchool";
$expectedoutput = "Mary Goes To School";
Run Code Online (Sandbox Code Playgroud)
Pas*_*TIN 20
这样的事情怎么样:
$string = "MaryGoesToSchool";
$spaced = preg_replace('/([A-Z])/', ' $1', $string);
var_dump($spaced);
Run Code Online (Sandbox Code Playgroud)
这个 :
这给出了这个输出:
string ' Mary Goes To School' (length=20)
Run Code Online (Sandbox Code Playgroud)
然后你可以使用:
$trimmed = trim($spaced);
var_dump($trimmed);
Run Code Online (Sandbox Code Playgroud)
要删除开头的空间,它会让您:
string 'Mary Goes To School' (length=19)
Run Code Online (Sandbox Code Playgroud)
试试这个:
$expectedoutput = preg_replace('/(\p{Ll})(\p{Lu})/u', '\1 \2', $string);
Run Code Online (Sandbox Code Playgroud)
的\p{…}
符号所描述经由字符Unicode字符属性 ; \p{Ll}
表示小写字母和\p{Lu}
大写字母.
另一种方法是:
$expectedoutput = preg_replace('/\p{Lu}(?<=\p{L}\p{Lu})/u', ' \0', $string);
Run Code Online (Sandbox Code Playgroud)
这里每个大写字母前面只有一个空格,如果它前面有另一个字母.所以MaryHasACat
也会奏效.
归档时间: |
|
查看次数: |
6307 次 |
最近记录: |