0

プレフィックスとサフィックスを使用して文字列を検索する正規表現があります。最も単純な形式で\$\$\w+\$\$は、検索されます$$My_Name$$(この場合、接頭辞と接尾辞はどちらも と同じです$$)。別の例は\[\#\w+\#\]、一致すること[#My_Name#]です。

接頭辞と接尾辞は常に 0 から n 文字の特定の文字列であり、直接の文字一致のために常に安全にエスケープできます。

C#コードでMatchesを抽出して操作できるようにしますが、明らかに私の一致には含まれて$$My_Name$$いますが、SuffixとPrefix:の間の内部文字列を取得するだけですMy_Name

結果からプレフィックスとサフィックスを除外するにはどうすればよいですか?

4

4 に答える 4

1

w+このようなグループにグループ化でき(w+)ます。一致した文字列を取得すると、そのサブグループを要求できる場合があります。

私が間違っているかどうかはわかりませんが(ただし、コードはまったく提供されていません)、これがどのように行われるかだと思い.Groups[1].ValueますRegex.Match

于 2013-09-03T11:11:37.797 に答える
0

次のように名前付きグループを使用できます。

(\$\$)(?<group1>.+?)\1      -- pattern 1  (first  case)
\[(#)(?<group2>.+?)\1\]     -- pattern 2  (second case)

または組み合わせた表現は次のようになります。

(\$\$)(?<group1>.+?)\1|\[(#)(?<group2>.+?)\3\]

.+?接頭辞/接尾辞以外の任意の文字に一致させるのに役立つので、使用することをお勧めします。

ライブデモ

于 2013-09-03T14:28:37.130 に答える