将街道名称与街道编号分开

2022-03-22 00:00:00 python regex php preg-replace

我正在尝试将街道名称与具有以下模式的街道编号分开:

  1. "12街"-名称:街道,门牌号:12
  2. "Street12"-名称:Street,门牌号:12
  3. "街道12A"-名称:街道,门牌:12A
  4. "Street12a"-名称:Street,编号:12a

在php和python中,获取街名的regex和获取街号的regex是什么?

注意:数字始终在街道名称之后,所以我猜这应该会缩短它。

谢谢。


解决方案

试一下,看看是否适合您:

$subjects = array( "street 12", "street12", "street 12a", "street12a" );
foreach( $subjects as $subject )
{
    if ( preg_match('/([^d]+)s?(.+)/i', $subject, $result) )
    {
       var_dump( $result );
    }
}
die_r( $result  );

您唯一需要的部分是:

// Find a match and store it in $result.
if ( preg_match('/([^d]+)s?(.+)/i', $subject, $result) )
{
    // $result[1] will have the steet name
    $streetName = $result[1];
    // and $result[2] is the number part. 
    $streetNumber = $result[2];
}

相关文章