我必須格式化爲以下字符串:PHP發現美國各州的代碼串
「休斯敦,得克薩斯州」 - STR1
「芝加哥,IL」 - STR2
「西雅圖」 - STR3
當給定上述str1/str2/str3中的每一個時,我想提取「TX」,「IL」,「WA」,如果狀態碼存在字符串中(即字符串末尾有2個大寫字母)使用PHP &正則表達式..任何指針..我無法從給我的方法的所有字符串可靠地提取此信息。
我必須格式化爲以下字符串:PHP發現美國各州的代碼串
「休斯敦,得克薩斯州」 - STR1
「芝加哥,IL」 - STR2
「西雅圖」 - STR3
當給定上述str1/str2/str3中的每一個時,我想提取「TX」,「IL」,「WA」,如果狀態碼存在字符串中(即字符串末尾有2個大寫字母)使用PHP &正則表達式..任何指針..我無法從給我的方法的所有字符串可靠地提取此信息。
你不需要使用正則表達式這一點。假設狀態代碼只能出現在一個字符串的結尾處,你可以用這個小功能:
/**
* Extracts the US state code from a string and returns it, otherwise
* returns false.
*
* "Houston, TX" - returns "TX"
* "TX, Houston" - returns false
*
* @return string|boolean
*/
function getStateCode($string)
{
// I'm not familiar with all the state codes, you
// should add them yourself.
$codes = array('TX', 'IL', 'WA');
$code = strtoupper(substr($string, -2));
if(in_array($code, $codes))
{
return $code;
}
else
{
return false;
}
}
嘗試/, [A-Z]{2}$/
(刪除逗號如果不重要)。
或者使用'/([ AZ] {2})$ /'並且抓取組而不是整個比賽。 –
用途:
$stateCode=trim(end(array_filter(explode(',',$string))));
substr($string, -2); // returns the last 2 characters
對於正則表達式試試這個好用的工具:http://txt2re.com – madc