0

以下を含む長いテキストがあります。

city_nameLAcity_name some text here and there ;) city_nameLondoncity_name some other text will goes here too then city_nameTehrancity_name and of course some other junk text here.

上記のテキストから、LA、ロンドン、テヘランを丸呑みしたいと思います。私はeregですが、以下のようなものを使用したいものを得ることができませんでした:

ereg ("city_name(.*)city_name", $longText, $output);

この仕事をどうするか?あなたの意見に感謝します!

4

1 に答える 1

1

(.*?)の代わりに使用し(.*)ます。違いは、.*可能な限り一致する (貪欲な量指定子を使用*) のに対し、可能な限り.*?一致しない(*?遅延量指定子) ことです。そのため、名前にどこかが含まれる都市がない限りcity_name(米国には奇妙な名前がいくつかありますが、それが起こる可能性があります) .*?、必要なものが得られるはずです。

ランダムなメモ: これは では機能しない可能性がありますereg。私は現在、拡張 POSIX 正規表現に精通していません。ただし、これらの関数は PHP ではしばらく非推奨になっています (これについても警告が表示されるはずです)。preg_*可能であれば、さまざまな関数に置き換えることをお勧めします。代わりになるpreg_match_allのは だと思います。

于 2012-08-21T05:54:34.093 に答える