我需要找到一种方法,使用 php/regex 将字符串(下面的示例)拆分为空格分隔的单词。以下是一些字符串示例和我的预期输出:
SomeRANDOMString -> 一些随机字符串
ANOTHERRandomString -> 另一个随机字符串
缩写 -> 缩写
字符串 -> 字符串
到目前为止我当前的非工作解决方案是:
$title = preg_replace("/([a-z])([A-Z])/", "$1 $2", $title);
将上面的字符串输出为:
一些随机字符串
ANOTHER随机字符串
ACRONYM
String
$title = implode(' ', preg_split('/(?<=[a-z])(?=[A-Z])|(?=[A-Z][a-z])/',
$title, -1, PREG_SPLIT_NO_EMPTY)));
The (?<=[a-z])(?=[A-Z])
当前一个字符为小写且下一个字符为大写时,正则表达式的部分将匹配,因此这将导致在正确的位置分割字符串,例如'SomeRANDOM'
or 'RandomString'
. The (?=[A-Z][a-z])
当接下来的两个字符是大写字母后跟小写字母时,部分将匹配,这将导致字符串分割,例如'ANOTHERRandom'
. The PREG_SPLIT_NO_EMPTY
flag 防止在字符串的开头处进行分割,并且implode()
用于转换返回的数组preg_split()
为以空格分隔的字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)