2012-05-11 7 views
0

複数行にマッチします。私は正規表現を使用して "キー"フィールド(名前、年齢、主言語、説明、国)とそれらの値の配列を取得します。正規表現は、私は、このような文字列を持つ複数回

私はPHPを使用しています。

私の現在の試みは、このですが、それは動作しません:

preg_match('/^(.*?\:) (.*?)(\n.*?\:)/ism', $text, $matches); 
+0

\ nがありますが、修飾語句にはすべての改行が新しい文字列であると言われています。そしてその 。また一致します\ n –

+0

データがユーザーによって入力されたと仮定します。データは '$ _POST'かデータベースから出ていますか? – Biotox

答えて

1

は、ここで一つの解決策です。

私はネガティブ先読みアサーションを使用していますが、(?!.*:)です。これは、次の行のように見えないことを確認する唯一の方法で、新しいフィールドのように見えると同時に、中止したところから続けることができます。これは、先読みと見た目のヒントが、アサーションがゼロ幅アサーションと呼ばれる理由です。

EDIT:任意の幅の先読みに関するビットが削除されました。私は間違っていた。上記の解決策は問題ありません。

関連する問題