在大写字母前添加下划线,但如果连续多个,则仅添加第一个大写字母

时间:2018-08-14 14:02:21

标签: php regex string

尝试将类似WebsiteURL的内容转换为website_url。我可以使用以下建议将其转换为website_u_r_lPHP - add underscores before capital letters

但是,这对我的要求不起作用。很难找到更好的答案。也许更简单的解决方案是先连续转换多个大写字母,所以WebsiteUrl吗?想知道最有效的路线是什么。

2 个答案:

答案 0 :(得分:1)

 echo strtolower(preg_replace('%([a-z])([A-Z])%', '\1_\2', "WebsiteURL")); 

检查解决方案here

答案 1 :(得分:0)

下面的代码实现了我想实现的目标

$result = strtolower(preg_replace('/(.)([A-Z])/', '$1_$2', $subject));

转化

TestTest
testTest
testingTest

收件人:

testing_test
test_test
test_test

在此src

找到