PHP在字符串中查找美国州代码

时间:2011-11-12 18:15:23

标签: php regex

我的字符串格式如下:

“Houston,TX” - str1
“伊利诺伊州芝加哥” - str2
“西雅图,华盛顿” - str3

我想在给出上述每个str1 / str2 / str3时提取“TX”,“IL”,“WA”,如果字符串中存在状态代码(即2个大写字母)在字符串的末尾)使用PHP&正则表达式..任何指针..我无法从给出给我的方法的所有字符串中可靠地提取此信息。

4 个答案:

答案 0 :(得分:1)

尝试/, [A-Z]{2}$/(如果逗号不重要,请删除逗号)。

答案 1 :(得分:1)

使用:

$stateCode=trim(end(array_filter(explode(',',$string))));

答案 2 :(得分:1)

substr($string, -2); // returns the last 2 characters

答案 3 :(得分:0)

您不需要为此使用正则表达式。假设状态代码只能出现在字符串的最后,您可以使用这个小函数:

/**
 * 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;
    }
}