• ベストアンサー

C#、Regex使用時の正規表現について

------------------------------------------------- おはようございます。 早速ですが質問させて頂きます。 現在、『C#でXMLファイルを読み込んで その中の文字を検索する』ということをしております。 ある行にXML表記で書かれた論理・比較演算子などがあり、 その演算子の数を制限させてみたいです。 ここで、演算子の数を数えるとき『MatchCollection』 を使用してカウントしているのですが、Regexの正規表現で "--"や"||"といった記号はどう検索させればよいのでしょうか。 例えば、インクリメントとデクリメントを検索しようとして Regex regex = new Regex("[--|++]"); のように書いてみても正しい数値が入っておりません。 まことに初歩の質問かもしれないので申し訳ないのですが、 どなたか方法をご存じの方がいらっしゃればご教示願いたいと思います。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

--ってなんかのエラーになりますか? ++や||なら、#1の方の回答にあるとおりエスケープして \\+\\+ や \\|\\| (@""形式の文字列なら\はひとつ)のようにすればよいはずです。 >Regex regex = new Regex("[--|++]"); 基本中の基本が…ブラケットの中に同じ文字二つ並べたりパイプ入れたり http://msdn.microsoft.com/ja-jp/library/20bw873z.aspx [character_group] (文字グループの肯定) 指定した文字グループに含まれる任意の文字に一致します。 この文字グループは、リテラル文字、 エスケープ文字、文字範囲、または文字クラスが 1 つ以上連結されて構成されます。 まあこの説明も文章が怪しいですが、どんなに簡単な参考書でも きちんと説明されてるでしょう。

sounds24
質問者

お礼

丁寧な回答ありがとうございます。 『\』を1つつけて実行をしてて出来てなかったので ワケがわからなくなったんだと思います。 紹介されたページをちゃんと読んでみたいと思います。

その他の回答 (1)

回答No.1

エスケープすればいいだけ

sounds24
質問者

お礼

短いながらも適切な回答ありがとうございました。