Php 使用正则表达式格式化字符串

Php 使用正则表达式格式化字符串,php,regex,string,Php,Regex,String,我需要一些帮助,我在csv文件中有这样的地址,我需要一个正则表达式以不同的方式格式化,我尝试过,但我对正则表达式不实用,在讨论这个论点时很容易把我弄糊涂 那是原来的地址 10,经由自由之路-90100巴勒莫(宾夕法尼亚州) 我需要这样 巴勒莫自由大道10901000号(宾夕法尼亚州) 我能做什么?我必须用php做这件事$str是你的csv内容吗 $str = preg_replace_callback('/(\d+),\s([^\-]+)\-/', function($matches){

我需要一些帮助,我在csv文件中有这样的地址,我需要一个正则表达式以不同的方式格式化,我尝试过,但我对正则表达式不实用,在讨论这个论点时很容易把我弄糊涂

那是原来的地址

10,经由自由之路-90100巴勒莫(宾夕法尼亚州)

我需要这样

巴勒莫自由大道10901000号(宾夕法尼亚州)


我能做什么?我必须用php做这件事

$str
是你的csv内容吗

$str = preg_replace_callback('/(\d+),\s([^\-]+)\-/', function($matches){
    return trim($matches[2]).', '.$matches[1].', ';
}, $str);

张贴您尝试过的内容只是为了帮助他理解所写内容:他将街道编号作为一个组提取,街道名称作为另一个组提取(删除-char,因为它与所研究的字符串不匹配,但不会插入第二个组)。(\d+)的意思是“通过查找具有1个或多个重复+的数字序列\d来创建一个组();然后是coma,用作分隔符和空白。他通过选择至少一个不包含^a-(由a转义)的字符来创建另一个组这不是一门火箭科学。这里记录了正则表达式。我可能是错误地试图帮助写“我试过了,但我对正则表达式不实用,这很容易让我困惑”的人。有时解释一些东西可以让某人下次能够自己做(正则表达式的可读性并不为人所知).我正在学习正则表达式,我写了第一部分(\d+),但我在第二部分结巴了,因为我仍然不明白为什么没有什么指标可以找到(比如[a-z]或类似的东西,包括符号),总之,非常感谢您的帮助!