我有一个街道地址,例如“1234 West 23rd Street”。我想吹出第一个街道号码,并在每个号码之间加上空格,如下:“1 2 3 4 West 23rd Street”。
使用像"([0-9])"
之类的简单表达式并将其替换为"$1 "
几乎可以正常工作,除非我希望它在第一个空格后停止并且不匹配,根据上面的示例,“23”在“ 23日“也是。
答案 0 :(得分:2)
你需要PHP帮助你,你不能单独使用Regex(Regex不会做这样的条件,它不是为它设计的)。
匹配:([0-9]+)\s
,然后得到你得到的结果(如果有多个,可能只使用第一个结果),在每个字符之间添加你想要的空格。
答案 1 :(得分:0)
所以你想只匹配空格后的第一个数字和空格。您可以使用^
字符匹配行的开头。所以你的正则表达式看起来像这样:
^(\d+)
\d
匹配任何数字。
答案 2 :(得分:0)
这可以使用preg_replace
和pattern modifier 'e',其中:
在替换字符串中正常替换反向引用,将其评估为PHP代码,并使用结果替换搜索字符串
$str = '1234 West 23rd Street';
preg_replace('/^([[:digit:]]+)/e', "implode(' ', str_split('$1'))", $str);
// returns '1 2 3 4 West 23rd St'