如何仅获取 RegEx 的第一个匹配项(基于 UiPath Studio RegEx 的提取器)
How to get only the first match of a RegEx (UiPath Studio RegEx Based Extractor)
我使用 UiPath Studio 的 OCR 从 PDF 中提取了以下文本。这是同一个文本块重复了 3 次,因为它是同一 PDF 页面的原件、副本和一式三份。
Os bens/serviços foram colocados à disposição do adquirente em 2020-04-16 * Data/Hora início de transporte: 2020-04-16 às 11:52
Total Líquido 500,00
Total de Descontos 500,00
Desconto Documento
Total de IVA 115,00
Total do Documento (EUR) 615,00
IVA Incidência Valor do IVA
Isento
6%
13%
23% 500,00 115,00
b5El-Processado por programa certificado n.º75/AT.
Os bens/serviços foram colocados à disposição do adquirente em 2020-04-16 * Data/Hora início de transporte: 2020-04-16 às 11:52
Total Líquido 500,00
Total de Descontos 500,00
Desconto Documento
Total de IVA 115,00
Total do Documento (EUR) 615,00
IVA Incidência Valor do IVA
Isento
6%
13%
23% 500,00 115,00
b5El-Processado por programa certificado n.º75/AT.
Os bens/serviços foram colocados à disposição do adquirente em 2020-04-16 * Data/Hora início de transporte: 2020-04-16 às 11:52
Total Líquido 500,00
Total de Descontos 500,00
Desconto Documento
Total de IVA 115,00
Total do Documento (EUR) 615,00
IVA Incidência Valor do IVA
Isento
6%
13%
23% 500,00 115,00
b5El-Processado por programa certificado n.º75/AT.
我需要提取“-Processado por programa”后面的 4 个字符代码,但只需要 1 个匹配项或第一个匹配项。
已经尝试了 [^*]+(?=-Processado\spor\sprograma)
和 (.*?)(?=-Processado\spor\sprograma)
,但输出了 3 个匹配项。
当我删除 /g
标志时它起作用了,但我使用的是 UiPath Studio 的 RegEx 提取器,但我不知道如何删除该程序上的那个标志。
/(\w{4})-Processado/g
是您要搜索的内容。查看正则表达式测试器的图像。它在正好 4 个字符上按预期工作。如果您在 UiPath 中需要帮助来应用它,请告诉我。
您可以匹配所有不以 4 个单词字符开头的行,并且 -Processado por programa
使用否定先行。
当遇到行时,捕获第 1 组中的前 4 个单词字符
\A.*(?:\r?\n(?!\w{4}-Processado\spor\sprograma\b).*)*\r?\n(\w{4})
说明
\A.*
断言字符串开头的位置和除换行符之外的任何字符 0+ 次
(?:
非捕获组
\r?\n
匹配一个换行符
(?!\w{4}-Processado\spor\sprograma\b)
负前瞻,断言不是-Processado por programa
直接向右
.*
匹配行的其余部分
)*
关闭非捕获组并重复0+次匹配所有行
\r?\n(\w{4})
匹配一个换行符并在第1组 中捕获4个单词字符
我使用 UiPath Studio 的 OCR 从 PDF 中提取了以下文本。这是同一个文本块重复了 3 次,因为它是同一 PDF 页面的原件、副本和一式三份。
Os bens/serviços foram colocados à disposição do adquirente em 2020-04-16 * Data/Hora início de transporte: 2020-04-16 às 11:52
Total Líquido 500,00
Total de Descontos 500,00
Desconto Documento
Total de IVA 115,00
Total do Documento (EUR) 615,00
IVA Incidência Valor do IVA
Isento
6%
13%
23% 500,00 115,00
b5El-Processado por programa certificado n.º75/AT.
Os bens/serviços foram colocados à disposição do adquirente em 2020-04-16 * Data/Hora início de transporte: 2020-04-16 às 11:52
Total Líquido 500,00
Total de Descontos 500,00
Desconto Documento
Total de IVA 115,00
Total do Documento (EUR) 615,00
IVA Incidência Valor do IVA
Isento
6%
13%
23% 500,00 115,00
b5El-Processado por programa certificado n.º75/AT.
Os bens/serviços foram colocados à disposição do adquirente em 2020-04-16 * Data/Hora início de transporte: 2020-04-16 às 11:52
Total Líquido 500,00
Total de Descontos 500,00
Desconto Documento
Total de IVA 115,00
Total do Documento (EUR) 615,00
IVA Incidência Valor do IVA
Isento
6%
13%
23% 500,00 115,00
b5El-Processado por programa certificado n.º75/AT.
我需要提取“-Processado por programa”后面的 4 个字符代码,但只需要 1 个匹配项或第一个匹配项。
已经尝试了 [^*]+(?=-Processado\spor\sprograma)
和 (.*?)(?=-Processado\spor\sprograma)
,但输出了 3 个匹配项。
当我删除 /g
标志时它起作用了,但我使用的是 UiPath Studio 的 RegEx 提取器,但我不知道如何删除该程序上的那个标志。
/(\w{4})-Processado/g
是您要搜索的内容。查看正则表达式测试器的图像。它在正好 4 个字符上按预期工作。如果您在 UiPath 中需要帮助来应用它,请告诉我。
您可以匹配所有不以 4 个单词字符开头的行,并且 -Processado por programa
使用否定先行。
当遇到行时,捕获第 1 组中的前 4 个单词字符
\A.*(?:\r?\n(?!\w{4}-Processado\spor\sprograma\b).*)*\r?\n(\w{4})
说明
\A.*
断言字符串开头的位置和除换行符之外的任何字符 0+ 次(?:
非捕获组\r?\n
匹配一个换行符(?!\w{4}-Processado\spor\sprograma\b)
负前瞻,断言不是-Processado por programa
直接向右.*
匹配行的其余部分
)*
关闭非捕获组并重复0+次匹配所有行\r?\n(\w{4})
匹配一个换行符并在第1组 中捕获4个单词字符