はじめまして。
C#(.NET Framwork 3.5)でフォームアプリケーションの開発をしています。
正規表現を利用して、文字列から対応するカッコがない、閉じカッコ以前の文字列を空文字に置換しようとしています。
以下のような感じです。
- あああ)いいい -> いいい
"あああ)"を置換
- あああ)いいい)ううう -> ううう
"あああ)"、"いいい)"を置換
- あああ(いいい) -> あああ(いいい)
何もしない
- あああ)いいい(ううう) -> いいい(ううう)
"あああ)"を置換
- あああ(いいい)ううう) -> "" または あああ(いいい)
全て置換 または "ううう)"を置換(どちらでもかまいません)
ソースは以下の通りです。
C#
1System.Text.RegularExpressions.Regex reg = 2 new System.Text.RegularExpressions.Regex(@"(?<![\((].*).+?[\))]"); 3replaced = reg.Replace(input, "");
実行すると、以下のような結果になってしまいます。
- あああ(いいい) -> ""
"あああ(いいい)"が置換される
- あああ)いいい(ううう) -> ""
"あああ)"、"いいい(ううう)"が置換される
- あああ(いいい)ううう) -> ううう)
"あああ(いいい)"が置換される
想定通りに動作する正規表現をご教示いただけますでしょうか。
正規表現が難しければ、他の方法でも構いません。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー