作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要想办法用 php/regex 将字符串(下面的示例)拆分为空格分隔的单词。下面是一些字符串示例和我的预期输出:
SomeRANDOMString -> 一些随机字符串
ANOTHERRandomString -> ANOTHER 随机字符串
缩略语 -> 缩略语
字符串 -> 字符串
到目前为止,我目前无法使用的解决方案是:
$title = preg_replace("/([a-z])([A-Z])/", "$1 $2", $title);
上面的字符串输出为:
一些随机字符串
另一个随机字符串
简称
字符串
最佳答案
$title = implode(' ', preg_split('/(?<=[a-z])(?=[A-Z])|(?=[A-Z][a-z])/',
$title, -1, PREG_SPLIT_NO_EMPTY)));
(?<=[a-z])(?=[A-Z])
当前一个字符为小写且下一个字符为大写时,正则表达式的一部分将匹配,因此这将导致在正确的位置拆分字符串,如 'SomeRANDOM'
或 'RandomString'
. (?=[A-Z][a-z])
当接下来的两个字符是大写字母后跟小写字母时,部分将匹配,这将导致字符串拆分,如 'ANOTHERRandom'
. PREG_SPLIT_NO_EMPTY
标志防止在字符串的最开头进行拆分,并且 implode()
用于转换preg_split()
返回的数组到以空格分隔的字符串。
关于php - 将 StudlyCaps 字符串拆分为单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16923576/
我是一名优秀的程序员,十分优秀!