1

私の現在の正規表現は次のとおりです。

(?<token>#gallery (?<id>[^#]+)#)

これを使って情報をつかみます。

の場合#gallery d23d23d#

という名前のグループd23d23dとしてグリーブしIdます。

これを拡張して、追加のパラメーターを許可する必要があるため、取得できます

#gallery d23d23d foo#と別のグループとして取得d23d23dfooますか?

私の正規表現のスキルは絶望的です。助けていただければ幸いです。

ありがとう。

4

1 に答える 1

0

正確に 2 つのグループをキャプチャする場合は、次を使用します。

(?<token>#gallery\s+(?<id>[^\s#]+)\s+(?<foo>[^\s#]+)#)

グループfooには、2 番目のキャプチャ グループが含まれます。\sスペース以外の空白文字を説明するために を使用し\s+、グループ間で を使用してパラメータ間に複数の空白文字を許可することに注意してください。

ゼロ、1、または2 つのグループをキャプチャするには、次を使用します。

(?<token>#gallery(?:\s+(?<p1>[^\s#]+)(?:\s+(?<p2>[^\s#]+)(?:\s+(?<p3>[^\s#]+))?)?)?#)

グループp1p2、およびp3には、一致する必要のない最初のグループが表示されtokenます。

任意の数のグループ (なしを含む) をキャプチャするには、次を使用します

(?<token>#gallery(?:\s+(?<id>[^\s#]+))*#)

Valueof グループidには最後に一致したパラメーターのみが含まれますが、そのプロパティCapturesには他のすべてのパラメーターが含まれます。

于 2013-04-22T23:13:47.403 に答える