カンマ"、"と閉じ括弧 ")"の間にある文字列を抽出しようとしています
これが下の文字列です...
(Punta Gorda, FL, U.S.A.)
これから私は抽出しようとしていますU.S.A
私が現在使用している正規表現はFL, U.S.A.
これは次の正規表現で行われます(?<=,).*(?=\))
私の目的を達成するために正規表現を変更する最も簡単な方法は何ですか?
正規表現を使用したくない場合は、これも機能します。
$string = "(Punta Gorda, FL, U.S.A.)";
$last_occurence = strrpos($string, ",");
$country = substr($string, $last_occurence + 1, strlen($string) - $last_occurence - 2);
代わりにこれを使用してください:
(?<=,\s)[^,]*(?=\))
正規表現は。の前に空白を返すことに注意してくださいFL, U.S.A
。これはしません。
私はこの正規表現で行きます:
([^,\s]+)(?=\))
UPD:
$str = '(london, United kingdom)';
preg_match('~([^,]+)(?=\))~', $str, $matches);
var_dump($matches);