-1

:-charが[と]で囲まれているかどうかを確認するための解決策を探しています。

テンプレート内の対応する値でキーを定義できるようにする一種の構文があります。構文はキーを識別するために:-charで展開されますが、括弧内にある場合は:-charも有効である必要があります。基本的に私のサンプル/ケースは次のようなものです:

:key1[value]:key2[this:value should work too]

:-charが角かっこで囲まれているかどうかを確認する方法を探しています。私はこれを理解するための手順を書き始めましたが、書いている間のどこかで私の頭の中の電子パルスは「正規表現..正規表現」と言いました。しかし、私はそれらにかなりなじみがありません。誰かが私を助けてくれますか?

質問に反対票を投じる場合は、少なくとも、なぜそれが悪い質問だと思うのか教えてください。私の意見では、それは私が支援を求めている正しい質問です。

4

3 に答える 3

3

これを解析する一般的な方法を紹介します:DEMO

:(key\d)+\[([^\]]+)\]

あなたがする必要があるのは、の間のすべてを一致させることです。したがって、使用する代わりに、正規表現に、そうでない[ものすべてを一致させたいことを伝える必要があります...].*][^\]]

詳細については、デモをご覧ください。

于 2012-11-26T09:07:12.223 に答える
1
preg_match('~\[[^\]]*:~', $str)

角かっこ内に文字1がある場合、これは返されます。:正規表現は、ブラケットが常にペアになっていることを前提としています。

于 2012-11-26T09:04:57.050 に答える
1

:-charが[]内にあるかどうかを確認するには、次の正規表現を入力するだけで十分です。

preg_match('/\[:-char\]/', $string);

これは、[]でラップされたすべての「:-char」と一致します。[]文字は正規表現パターンの一部であるため、エスケープする必要があることに注意してください。すべての「:-char」を検索したいが、[]が含まれているかどうかを確認したい場合は、次のように入力します。

preg_match('/(\[)?:-char(\])?/', $string, $var);

次に、()内のすべての結果がにキャプチャされ$varます。そして、その構造から、[]で包まれているかどうかを判断できます

正規表現がどのように機能するかをよりよく理解するために、標準のPHPドキュメントをお勧めします:http://php.net/manual/en/book.pcre.php

于 2012-11-26T09:09:03.000 に答える