• 締切済み

0~9A~F以外の文字の混入をチェックするロジック

VC#.Netで開発をしてまいます。 ロジックについての質問です。 あるstring型のデータについて、 16進数の文字列0~9、A~F(a~f)以外の文字の混入を検出したいのですが、いいロジックが思いつきません。 (例えば"123ABC"はOKで"123GHJ"はNGにしたい) 正規表現などで実現しようとしましたが、思うようにできませんでした。 簡単に実現できそうな気もするのですが、どうでしょうか? 知恵を貸してください。よろしくお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

using System; using System.Text; using System.Text.RegularExpressions; class Test{ public static void Main(){ string [] test_strings = { "123ABC", "123GHJ" }; Regex theReg = new Regex(@"^[0-9A-Fa-f]+$"); foreach(string testString in test_strings){ if(theReg.IsMatch(testString)){ Console.WriteLine("{0} is OK",testString); } else { Console.WriteLine("{0} is NG",testString); } } } }

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「正規表現などで実現しようとしましたが、思うようにできませんでした。」 の意味がよくわからないんですが, [^0-9a-fA-F] にマッチしたらダメってことじゃない?

  • tarodaro
  • ベストアンサー率43% (7/16)
回答No.1

System.String の IndexOfAny でもいいと思いますが

関連するQ&A

専門家に質問してみよう