0
String testString = "Some text F4LE8AWMF87E and again some text";
Match myMatch = Regex.Match(testString, "\b(?=[a-zA-Z]*[0-9])(?=[0-9]*[a-zA-Z])[0-9a-zA-Z]{12,}\b");
myLabel.Text = testString.Substring(myMatch.Index, myMatch.Length);

myLabelに「F4LE8AWMF87E」と表示されるはずですが、表示されません。

なにが問題ですか?

4

2 に答える 2

1

文字列リテラルの文字'\'をエスケープする必要があります。

String testString = "Some text F4LE8AWMF87E and again some text";
Match myMatch = Regex.Match(testString, @"\b(?=[a-zA-Z]*[0-9])(?=[0-9]*[a-zA-Z])[0-9a-zA-Z]{12,}\b");
myLabel.Text = myMatch.Value;
于 2012-11-26T13:29:40.670 に答える
0

次のことを試してください。

C#エスケープはわずかな違いをもたらしますが、 Rublarでの参照。あなたはそれをテストすることができます。正規表現内にto_upperケースがある場合は、それが改善されると思います:)

String testString = "Some text F4LE8AWMF87 and again some text";
    Match myMatch = 
    Regex.Match(testString, "\b[a-zA-Z\d]{11,12}\b");
    myLabel.Text = testString.Substring(myMatch.Index, myMatch.Length);
于 2012-11-26T14:02:43.343 に答える