新行的正则表达式在 UiPath 中不起作用

Regular Expression for New line is not working in UiPath

我在文本文件中有以下文本,我想在 UiPath 中使用正则表达式、公司名称(即 SOME ANALYTICS)读取第二行。

INVOICE DETAILS Invoice To:
SOME ANALYTICS
Invoice# : R0264
Invoice Date: 27/06/20

我已经尝试在 https://regexr.com/ 上使用正则表达式来检索数据并且它工作正常。但是相同的表达式在 UiPath 上不起作用。

(?<=To:[\n\r]).+

您可以使用

(?<=^.*\n).+

详情:

  • (?<=^.*\n) - 正后视匹配以 LF char
  • 结尾的第一行之后出现的位置
  • .+ - 除了 LF 字符(第二行)之外的一个或多个字符。

参见regex demo

另一种选择是从等式中取出 CR,并通过将 ^ 替换为 \A:

使正则表达式多行标志不敏感
(?<=\A[^\r\n]*\r?\n)[^\r\n]+

这个正则表达式匹配

  • (?<=\A[^\r\n]*\r?\n) - 紧接在前面的位置
    • \A - 字符串开头
    • [^\r\n]* - 除 CR 和 LF 之外的零个或多个字符尽可能多
    • \r?\n - 一个可选的 CR,然后是 LF char
  • [^\r\n]+ - 除了 LF 和 CR 之外的一个或多个字符。

参见 this regex demo

您可以匹配结束于 To: 的行,然后捕获组 1 中的下一行。

^.* To:\r?\n(.+)
  • ^ 行首(多行)(或使用 \A 匹配整个字符串的开头)
  • .* To: 可选择匹配后跟 space 和 To:
  • 的任何字符
  • \r?\n 匹配一个可选的回车 return 和一个换行符
  • (.+) 捕获组 1,匹配任意字符 1+ 次

Regex demo

使用 [\n\r] 匹配换行符或回车符 return。如果有回车return和换行,你也可以试试:

(?<=To:\r?\n).+

Regex demo