0

我有一个这样的属性列表:

1000 Rope Bend Ter
Labelle, FL 33935
Hendry County
15811 Hendry Isles Blvd
Clewiston, FL 33440
Hendry County

现在我需要提取第一行,并将其放在 MySQL 数据库中的地址字段下,然后提取城市(始终是第二行,后面有一个逗号),提取状态和 ZIP,将它们放在适当的 MySQL 列下.

因此,基本上,一个地址分 3 行,格式如上所示。地址、换行符、城市、州、邮政编码、换行符县(我不需要县信息)。

有人可以提示如何正确提取它吗?

4

1 回答 1

1

编辑:更新了正则表达式

正则表达式/^([^ ]+)\s*(.+)\s+([^,]+),\s*([^ ]+)\s*(.+)\s*(.+)/im应该可以工作。

在 PHP 中使用它的方法是:

<?php
    $string = "1000 Rope Bend Ter\r\nLabelle, FL 33935\r\nHendry County\r\n15811 Hendry Isles Blvd\r\nClewiston, FL 33440\r\nHendry County";
    preg_match_all("/^([^ ]+)\s*(.+)\s+([^,]+),\s*([^ ]+)\s*(.+)\s*(.+)/im", $string, $matches);

    for ($i = 0; $i < count($matches[0]); $i++) {
        echo "Street number: " . $matches[1][$i] . "<br />";
        echo "Street name: " . $matches[2][$i] . "<br />";
        echo "City: " . $matches[3][$i] . "<br />";
        echo "State: " . $matches[4][$i] . "<br />";
        echo "Zip: " . $matches[5][$i] . "<br />";
        echo "County: " . $matches[6][$i] . "<br />";
        echo "<br /><br />";
    }
?>

输出:

Street number: 1000
Street name: Rope Bend Ter 
City: Labelle
State: FL
Zip: 33935 
County: Hendry County

Street number: 15811
Street name: Hendry Isles Blvd 
City: Clewiston
State: FL
Zip: 33440 
County: Hendry County

如果您需要解释正则表达式,请直说。

于 2012-08-20T07:37:34.957 回答