2016-05-20 6 views
-1

HTMLエディタでは、特定の書式でテキストを書きます。PHP:文字列データからテキストを検索して配列に格納する必要があります

例:

テストテストテスト{{LATEL1}}テストテストテスト{{LATEL2}}テスト試験 テストここでは、書き込まれるすべてのデータを取得する

{ {}}。すべての結果を配列にしたい。

これはregexpを使って行うことができると思います。これをどうやって手助けできますか?他の簡単な方法がある場合は、私に知らせてください。

+0

http://php.net/manual/ en/function.preg-match-all.php --- https://regex101.com/ :) – dan08

答えて

0

あなたはnon-greedy "anything" quantifierを使用して、グローバルに一致させたいと思うでしょう。このように、.*?は確かにあなたの区切り文字を聞かせてなる、一度に 1文字を何も一致しますが、なり、{}年代、正しくマッチ:()によって

{{(.*?)}} //global 

すべての値がcapturedグローバルマッチが実行された後、配列(または配列のような)の 'matches'オブジェクトで利用できるはずです。ここregex demo出力です:{{([^{}]*)}}demo):

enter image description here

注:あなたは非常に大規模な入力を使用している場合は、この代替が、意味的に等価な正規表現が速くなるかもしれません。 (否定された文字クラス[^{}]*は、一度に1つだけを食べるのではなく、一度に.*?を食べるのではなく、中かっこ以外のすべての括弧を一致させて(食べることができます)

関連する問題