gpt4 book ai didi

php - 如何用破折号替换所有大写字母,用正则表达式替换小写字母?

转载 作者:行者123 更新时间:2023-12-05 08:14:42 26 4
gpt4 key购买 nike

如何在 php 中用破折号和等效的小写字母替换所有大写字母?

比如understandRegexBetterunderstand-regex-better?

我对以下代码的 Google-fu 和实验并没有让我走得太远。

echo preg_replace('/[A-Z]+/', "-$'", "understandRegexBetter");

编辑:我忘了特别说明第一个字符永远不会大写。

最佳答案

首选方法:

此方法用 - 和大写字母组替换前面有小写字母的任何大写字母组。然后我们在事后将整个字符串小写。

echo strtolower(preg_replace(
'/(?<=[a-z])([A-Z]+)/',
'-$1',
'understandRegexBetter'
));

正则表达式回调:

使用preg_replace_callback()- 替换任何一组大写字母,然后是通过 strtolower() 传递的字母。但是,这会在您的字符串中留下前面的 -(我们可以在 RegEx 中查找前面的字符,但您的第一个字母将保持大写)。

echo preg_replace_callback(
'/[A-Z]+/',
function ($matches) {
$character = reset($matches);
return '-' . strtolower($character);
},
'understandRegexBetter'
);

弃用:

旁注,从技术上讲,您可以将 preg_replace()e modifier 一起使用但自 PHP 5.5 起已弃用。一个例子是:

echo preg_replace(
'/([A-Z]+)/e',
'"-" . strtolower("$1")',
'understandRegexBetter'
);

关于php - 如何用破折号替换所有大写字母,用正则表达式替换小写字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22849950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com