我有一個印度公司的數據集,並需要從地址欄提取城市和郵編:PHP匹配字符串
地址字段示例: Gowripuram西,Sengunthapuram後,近LGB,卡魯爾,泰米爾納德邦,卡魯爾 - 639 002,印度
正如你所看到的城市是卡魯爾(Karur),在 - (連字符)之後跟着拉鍊。
我需要的PHP代碼以匹配[城市] - [拉鍊]
不知道如何做到這一點我可以找到連字符後的郵編,但不知道如何找到城市,請注意城市可以是2個字。
乾杯你time./
Ĵ
我有一個印度公司的數據集,並需要從地址欄提取城市和郵編:PHP匹配字符串
地址字段示例: Gowripuram西,Sengunthapuram後,近LGB,卡魯爾,泰米爾納德邦,卡魯爾 - 639 002,印度
正如你所看到的城市是卡魯爾(Karur),在 - (連字符)之後跟着拉鍊。
我需要的PHP代碼以匹配[城市] - [拉鍊]
不知道如何做到這一點我可以找到連字符後的郵編,但不知道如何找到城市,請注意城市可以是2個字。
乾杯你time./
Ĵ
正則表達式有他們的所有應用程序的地方,但在不同的國家/語言可以爲微量的處理時間,增加了不必要的複雜性。
試試這個:
<?php
$str = "Gowripuram West, Sengunthapuram Post, Near L.G.B., Karur, Tamilnadu, Karur - 639 002, India";
$res = substr($str,strpos($str, "," ,3), strpos($str,"\r"));
//this results in " Karur - 639 002, India";
$ruf = explode($res,"-");
//this results in
//$ruf[0]="Karur " $ruf[1]="639 002, India";
$city = $ruf[0];
$zip = substr($ruf[1],0,strpos($ruf[1], ",");
$country = substr($ruf[1],strpos($ruf[1],","),strpos($ruf[1],"\r"));
?>
未經測試。希望它有幫助〜
你可以使用爆炸讓所有的字段的數組,你可以在連字符分割。然後你將在一個數組中有2個值。第一個將是你的城市(可以是2個字),第二個將是你的郵編。
$info= explode("-",$adresfieldexample);
我會推薦正則表達式。由於可以預編譯表達式,因此如果反覆使用它,性能應該很好。
下面的正則表達式在$matches[1]
中放置「Karur」,在$matches[2]
中放置「639 002」。
它也適用於多字城市名稱。
$str = "Gowripuram West, Sengunthapuram Post, Near L.G.B., Karur, Tamilnadu, Karur - 639 002, India";
preg_match('/.+, (.+) - ([0-9]+ [0-9]+),/', $str, $matches);
print_r($matches);
正則表達式也許可以得到改善,但我相信它符合你的問題規定的要求。
試試這個:
<?php
$address = "Gowripuram West, Sengunthapuram Post, Near L.G.B., Karur, Tamilnadu, Karur - 639 002, India";
// removes spaces between digits.
$address = preg_replace('{(\d)\s+(\d)}','\1\2',$address);
// removes spaces surrounding comma.
$address = preg_replace('{\s*,\s*}',',',$address);
var_dump($address);
// zip is 6 digit number and city is the word(s) appearing betwwen zip and previous comma.
if(preg_match('@.*,(.*?)(\d{6})@',$address,$matches)) {
$city = trim($matches[1]);
$zip = trim($matches[2]);
}
$city = preg_replace('{\W+$}','',$city);
var_dump($city); // prints Karur
var_dump($zip); // prints 639002
?>
$info="Gowripuram West, Sengunthapuram Post, Near L.G.B., Karur, Tamilnadu, Karur - 639 002, India";
$info1=explode("-",$info);
$Hi=explode(",","$info1[1]");
echo $Hi[0];
hopes this will help u.....
這可能是一個愚蠢的問題,但城市名稱可以包含逗號或數字嗎? – ehdv