Aspose从.pdf中提取文本时我需要识别字符串后面的数字" Check Number:"当Check和Number之间可能有一个空格或两个空格时。产生这个.pdf的程序似乎是变化无常的似乎有时存在变化,但总是两个单词Check和Number后跟冒号。接着是不确定数量的空格,然后是实际的支票号码。我需要一个正则表达式来插入我的aspose TextFragmentAbsorber。如果尚未明确说明,目标是捕获整个正确的支票号码。
//create TextAbsorber object to find all the phrases matching the regular expression
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); //like 1999-2000
答案 0 :(得分:3)
我不知道aspose,但无论如何我都会对它进行拍摄......
首先,如果你能以某种方式使用捕获组,我想你可以简单地使用它:
new TextFragmentAbsorber(@"Check\s+Number\s*:\s*(?<number>\d{4}-\d{4})");
如果整个表达式必须与数字匹配,则必须使用lookbehind:
new TextFragmentAbsorber(@"(?<=Check Number:)\s*\d{4}-\d{4}");
此解决方案将包含支票号前的空格,并依赖于Check
和Number
之间只有一个空格的事实。
如果aspose使用.NET正则表达式引擎,您可以使用可变长度的lookbehind表达式:
new TextFragmentAbsorber(@"(?<=Check\s+Number\s*:\s*)\d{4}-\d{4}");