正则表达式在德国管道之前获取文本|fbf4cf3c-ebfe-43c8-aaf9-6811bd3488b0

Regex to get text before pipe in Germany|fbf4cf3c-ebfe-43c8-aaf9-6811bd3488b0

我有一个以这种格式给出的文本

Germany|fbf4cf3c-ebfe-43c8-aaf9-6811bd3488b0

Regex 必须如何才能获得 Germany 以及 Regex 必须如何才能获得 fbf4cf3c-ebfe-43c8-aaf9-6811bd3488b0

我使用 Nintex Workflow 并尝试了 .+?(?=\|),但它无法正常工作。

您可以使用 2 个捕获组,您可以使用 </code> 和 <code>:

获得匹配项
(\w+)\|([a-f0-9]+(?:-[a-f0-9]+)+)\b
  • (\w+) 捕获 组 1,匹配 1+ 个单词字符
  • \| 匹配 |
  • ( 捕获 第 2 组
    • [a-f0-9]+ 匹配 1+ 个字符 a-f 0-9
    • (?:-[a-f0-9]+)+ 重复 1+ 次匹配 - 和 1+ 个字符 a-f o-9
  • )\b 关闭第 2 组后跟单词边界以防止部分匹配

看到一个regex demo

要获得单独的匹配项,您还可以使用环视。

Match 1 个或多个单词字符断言 | 和行会格式,使用正面前瞻向右:

\w+(?=\|[a-f0-9]+(?:-[a-f0-9]+)+\b)

match 类似行会的模式断言一个单词 char 后跟一个 | 到左侧使用正后视:

(?<=\w\|)[a-f0-9]+(?:-[a-f0-9]+)+\b