1

したがって、単語のリストをスキャンし、「Control Number:」を見つけて wordNumber に設定し、次の単語を controlNum (返そうとする文字列) に設定する以下のメソッドがあります。

public string ABSFindControlNumber(List<tessnet2.Word> wordList)
        {
    for (int i = 0; i < wordList.Count; i++)
                    {
                        if (wordList[i].Text == "Control Number:" && wordList[i].Confidence >= 50)
                        {

                            string wordNumber = wordList[i].Text.ToString();
                            controlNum = wordList[i + 1].Text.ToString();
                            return controlNum;
        }
        }
}

しかし、RegExを使用して同様のアプローチを行う方法を見つけた後。controlNum を次の単語に設定する方法があるかどうかを確認したいと思います。正確な単語が見つからない場合に備えて、特定の文字/数字にはいくつかの異なるケースがあります。

if (Regex.IsMatch(text, @"c(0|o)ntr(0|o)(l|1|i)\s+nu(in|m)ber(:|;|s)", RegexOptions.IgnoreCase))
 {
                controlNum = ???
 }
4

1 に答える 1

1

あなたはこれを行うことができます:

string text = "Control Number: 123foobar";
var match = Regex.Match(text, @"c[o0]ntr[o0][l1i]\s+nu(?:in|m)ber[:;s]\s*(\w*)", RegexOptions.IgnoreCase);
if (match.Success)
{
    var controlNum = match.Groups[1].Value; // 123foobar
}
于 2013-07-11T18:11:05.787 に答える