gpt4 book ai didi

php - 正则表达式用字符本身和连字符替换字符

转载 作者:可可西里 更新时间:2023-11-01 13:19:14 25 4
gpt4 key购买 nike

我需要用驼峰字符和 - 替换一些驼峰字符。

我得到的是这样的字符串:

Albert-Weisgerber-Allee 35
Bruninieku iela 50-10

这些字符串通过这个正则表达式将数字与街道分开:

$data = preg_replace("/[^ \w]+/", '', $data);
$pcre = '\A\s*(.*?)\s*\x2f?(\pN+\s*[a-zA-Z]?(?:\s*[-\x2f\pP]\s*\pN+\s*[a-zA-Z]?)*)\s*\z/ux';
preg_match($pcre, $data, $h);

现在,我有两个问题。

  1. 我的正则表达式很差。

  2. 上面的正则表达式还从街道名称中删除每个 -,德国和欧洲有很多这样的名称。

实际上,将正则表达式调整为不删除任何连字符会很容易,但我想了解正则表达式的工作原理,因此我决定尝试找到一个正则表达式,它只用 < 替换字符串中的每个驼峰式大小写字母/p>

- & matched Camel Case letter

除了第一个大写字母出现。

我设法找到了一个正则表达式,它向我展示了我需要像这样粘贴连字符的地方:

.[A-Z]{1}/ug     

https://regex101.com/r/qI2iA9/1

但是我究竟该如何替换这个字符串:

AlbertWeisgerberAllee 

它变成了

Albert-Weisgerber-Allee

最佳答案

要在大写字母之前插入破折号,请使用此正则表达式:

$string="AlbertWeisgerberAllee";
$string=preg_replace("/([a-z])([A-Z])/", "\\1-\\2", $string);

关于php - 正则表达式用字符本身和连字符替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30823253/

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