【问题标题】:PHP regex add slashes before upper case leter [duplicate]PHP正则表达式在大写字母前添加斜杠[重复]
【发布时间】:2013-07-25 17:38:56
【问题描述】:

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

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

【问题讨论】:

    标签: php regex regular-language


    【解决方案1】:

    你可以这样做:

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

    \K重置所有之前匹配的,然后你可以用这个技巧匹配所有大写前面的小写。

    (?=..) 是一个前瞻,意思是跟随。前瞻只是一个检查,但什么都不匹配。

    【讨论】:

      【解决方案2】:

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

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

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        • 2017-05-12
        • 2020-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多