誰も私にこれを手伝ってもらえますか?Regexでラベル付きのパラメタ文字列を解析する
ここでの目的は、テキストファイルから情報を取得し、その情報をユーザーに提示し、その情報を置き換えて新しい出力を生成することです。だから私は正規表現を使うことを考えました。
私の変数のフォーマットは、{@<num>[|<value>]}
です。ここで
は、いくつかの例があります:ときのようなものを除いて、\{\@(\d{1,})(?:\|{1}(.+))*\}
ocasionsのほとんどにかなりうまく機能:
{@1}<br>
{@2|label}<br>
{@3|label|help}<br>
{@4|label|help|something else}<br><br>
だから、いくつかの研究と実験の後、私はこの表現を思い付きましたこの2 & 3は、単一の発生にはなく2つのSに一致している。この場合の変数は
{@1} some text {@2|label} some more text {@3|label|help}
別の一致が...
私はすでに表現の末尾に}
のためにlookaheadコマンドを使用しようとしましたが、それを得ることはできませんでした。 C#では
\{\@(\d+)(?:\|[^|}]+)*\}
:
MatchCollection matches = Regex.Matches(mystring,
@"\{\@(\d+)(?:\|[^|}]+)*\}");
それは防ぎ
私は、それがさらに
'(。+)'の代わりに ''(。+?) ''を使用してみましたか? – Howard