1

所以我有下面的方法,它将扫描单词列表,找到“控制号:”并将其设置为 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 回答