1

カンマ"、"と閉じ括弧 ")"の間にある文字列を抽出しようとしています

これが下の文字列です...

(Punta Gorda, FL, U.S.A.)

これから私は抽出しようとしていますU.S.A

私が現在使用している正規表現はFL, U.S.A.

これは次の正規表現で行われます(?<=,).*(?=\))

私の目的を達成するために正規表現を変更する最も簡単な方法は何ですか?

4

3 に答える 3

2

正規表現を使用したくない場合は、これも機能します。

$string = "(Punta Gorda, FL, U.S.A.)";
$last_occurence = strrpos($string, ",");
$country = substr($string, $last_occurence + 1, strlen($string) - $last_occurence - 2);
于 2012-09-03T22:53:22.583 に答える
1

代わりにこれを使用してください:

(?<=,\s)[^,]*(?=\))

正規表現は。の前に空白を返すことに注意してくださいFL, U.S.A。これはしません。

于 2012-09-03T22:48:25.730 に答える
1

私はこの正規表現で行きます:

([^,\s]+)(?=\))

UPD

$str = '(london, United kingdom)';

preg_match('~([^,]+)(?=\))~', $str, $matches);

var_dump($matches);
于 2012-09-03T22:49:06.503 に答える