文字列が単一の整数またはテキストや整数の組み合わせで構成されていると仮定して、文字列の最後の整数を照合し、最後の整数の前後の可能な要素をキャプチャする必要があります。$strは次のようになります。
- '123'->'' --123-''
- 'abc 123'->'abc' --123
- 'abc 123 def'->'abc' --123-'def'
- 'abc 123 def 456'->'abc 123 def'-456
- 等
私は、phpの次のコードがその仕事をすることを期待していました。
$str = 'abc 123 def 456 ghi';
preg_match('/(.*)(\d+)(\D*)$/', $str, $matches);
echo 'Matches = ' . implode(' : ', $matches);
しかし、(\ d +)は1桁しか拾っていません:
Matches = abc 123 def 456 ghi : abc 123 def 45 : 6 : ghi
私が期待していた間:
Matches = abc 123 def 456 ghi : abc 123 def : 456 : ghi
Javascriptでも同じ動作がします。(。*)は、(\ d +)に衝突するのに貪欲ですか?
前もって感謝します!