1

.NETの正規表現エンジンを使用して整数配列を照合することは可能ですか?例えば:

var a = new short[] { 1, 2, 3, 4, 5, 6 };
var r = new NumericRegex("^/1/2.{2}(/5|/10)/6$");
var match = r.Match(a);

概念的にはintとcharの間に違いはありませんが、どのように実装するのでしょうか。

UPD:

考えられる解決策の1つは、intをunicode文字に変換することです。しかし、正規表現の特殊文字を除外またはエンコードするにはどうすればよいですか?

4

2 に答える 2

0

shortsについて話すと、前の回答のこの変更は問題なく機能するようです。

var a = new short[] { 1, 2, 3, 4, 5, 33, 32, 43, 34 };
StringBuilder sb = new StringBuilder();
foreach (char i in a) { sb = sb.Append(i); }
MessageBox.Show(Regex.Match(sb.ToString(), "\u0005\u0021\u0020\\u002B\u0022").Value);

char i in aの代わりに注意してくださいvar i in a

于 2012-05-27T10:26:55.723 に答える
-1

編集済み

int 配列を正規表現と直接一致させることはできません。

ドキュメントによると、 MSDN Match メソッドはパラメーターを文字列として受け取ります。

最初に int 配列を文字列に変換する必要があります。次のようにして、int配列を文字列に変換できます

 var a = new[] { 1, 2, 3, 4, 5, 6 };
 StringBuilder sb = new StringBuilder();
        foreach (var i in a)
        {
            sb = sb.Append(i);
        }
  var result=sb.ToString();
于 2012-05-26T15:59:39.910 に答える