PHP正则表达式在大写字母之前添加斜杠

时间:2013-07-25 17:38:57

标签: php regex regular-language

之前:ThisIsExample 之后:This-Is-Example

正则表达式可以吗?我尝试通过大写字母爆炸来做到这一点,但是大写的leteer是不可能的偏离字符串。

2 个答案:

答案 0 :(得分:4)

你可以这样做:

$result = preg_replace('~[a-z]\K(?=[A-Z])~', '-', $yourString);

\K重置之前匹配过的所有内容,然后你可以使用这个技巧匹配所有大写字母前面加一个小写字母。

(?=..)是预测,意味着后跟。一个先行只是一个检查,但没有匹配。

答案 1 :(得分:2)

是的,可以使用正则表达式。请看这个StackOverflow答案: https://stackoverflow.com/a/6227110
答案提供了在大写字母前添加下划线的解决方案,因此要添加短划线( - 符号),这是正确的代码:

$result = preg_replace('/\B([A-Z])/', '-$1', $subject);

希望这有帮助。