0

正規表現を使用して、すべてのリスト項目をプレーン テキスト (.txt ファイル) で取得したいと考えています。たとえば、次のようになります。

Books must I read this week before Saturday:
1. Geography
2. Math
3. Biology
The priority book is book 2. This book is borrowed by John.

私は次のように使用preg_match_allします

$pattern = "/^[0-9]\.(.*)\n/";
preg_match_all($pattern, $filehandler, $matches);

次の結果が期待されます。

1. Geography
2. Math
3. Biology

文字列2. This book is borrowed by John.は で一致するべきではありません$matches。しかし、私はそのパターンから何も得られません。誰が私がどのパターンを使用すべきか知っていますか?

4

2 に答える 2

1

あなたはこれを試すことができます

$list = 'Books must I read this week before Saturday:
1. Geography
  2. Math
        3. Biology
The priority book is book 2. This book is borrowed by John.';

preg_match_all('/\n[\s\t]*(\d+\..*)/', $list, $bullets);

var_dump($bullets);
于 2013-04-14T14:43:53.650 に答える
0

最も効率的な方法は、複数行モードを使用することです:

preg_match_all('/^[0-9]+\. .*$/m', $list, $matches);
$result = $matches[0];
于 2013-04-14T15:03:09.743 に答える