0

一致する必要があるワイルドカード文字列を Word で作成しています。

{0>yadayada<}100{>yadayada<0}

yadayada は、{0> で示される新しい区切り文字の開始を除いて、何でもかまいません。

これは私がこれまでに持っているものです:

(\{0\>)*(\<\}100\{\>)*(\<0\})

これは、最初の '*' が <}100{>yadayada<0} を見つけるまで tekst と一致し続けることを除いて機能します * が '{0>' を含む文字列を除くすべてを選択するように変更する必要があります

最初の * を変更してこれを試しました

[!(\{0>)]*

またはすべて一緒に:

(\{0\>)[!(\{0>)]*(\<\}100\{\>)*(\<0\})

しかし、これは明らかに機能しません。助けてください!

4

1 に答える 1

1

これを試して:

\{0>.+?(?=\{0>)

をエスケープするだけです。\{

この正規表現の意味は次のとおりです。

任意のテキストを含むすべての文字列{0>に 1 回以上一致.+?、最後の は正規表現エンジンに遅延検索を行うように指示し.+ます。許可するとすべての文字が消費されるためです。遅延検索は、正規表現の次の部分が引き継がれるまで、最小量の文字を見つけると言います。

次に、(?=\{0>)次の区切り文字に一致するように指示しますが、選択には含めません。

お役に立てれば!

于 2013-09-05T11:52:23.237 に答える