私はRegex.ReplaceをC#で使用しています。置換された文字列では、オプションのグループの1つが取得された場合にのみ、文字列の一部が出力されるという条件を付けたいと思います。 Flag
キャプチャグループはオプションであることをRegex.Replace:オプションのグループに基づく条件付き置換
(?<Expiry>\d+[my])\s+(?<Flag>[a-z][A-Z])?\s*$)
注 - :例えば、私はこの正規表現を持っています。
置換文字列は、今私はフラッグ・グループが捕獲されている場合"Flag is : ${Flag}"
文字列が結果だけに表示されたい
"Expiry is ${Expiry}. Flag is : ${Flag}"
です。
私は、次のコードを使用しています:
var regex = new
Regex("(?<Expiry>\d+[my])\s+(?<Flag>[a-z][A-Z])?\s*$)",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
string result = regex.Replace("10y", "Expiry is ${Expiry}. Flag is : ${Flag}";
結果がなければならないExpiry is 10y
で。
string result = regex.Replace("10y abc", "Expiry is ${Expiry}. Flag is ${Flag}");
結果は、「有効期限は10yです。フラグは:abc」です。
ご迷惑をおかけして申し訳ありません。
あなたの一部をあなたと共有できますか? –
関連:http://stackoverflow.com/questions/767869/how-to-regex-replace-match-group-item-with-method-result –
エディターに慣れてください。あなたがコードを投稿する場合に使用すべきコードフォーマットコマンド(Ctrl-K)があります。そうしないと、マークダウンは '*'(および他のもの)を解釈してコードの意味を変更します。 –