使用正后视的正则表达式在 Alteryx 中不起作用

Regular expression using positive lookbehind not working in Alteryx

我正在尝试使用正后向匹配“Vores ref.:”之后的第二个单词的字符串。它适用于像 https://regexr.com/ 这样的在线测试器,但我的工具 Alteryx 不允许在后视中使用像 + 这样的量词。

"ABC 这是一个示例 Vores 参考:23244-2234 LW782837673 测试 2324324"

(?<=Vores\sref.:\s\d+-\d+\s+)\w+ 在 regexr.com 上正确匹配 LW78283767,但在 Alteryx 中不匹配。

如何使用量词重写前瞻表达式但仍然得到我想要的?

您可以在此处使用替代方法

.*?\bVores\s+ref\.:\s+\d+-\d+\s+(\w+).*

替换为</code>。</p> <p>参见<a href="https://regex101.com/r/NBBSZp/3" rel="nofollow noreferrer">regex demo</a>。</p> <p><em>详情</em>:</p> <ul> <li><code>.*? - 除换行字符外的任何 0+ 个字符,尽可能少

  • \bVores - 整个单词 Vores
  • \s+ - 一个或多个空格
  • ref\.: - ref.: 子字符串
  • \s+ - 一个或多个空格
  • \d+-\d+ - 一位或多位数字,- 和一位或多位数字
  • \s+ - 一个或多个空格
  • (\w+) - 捕获第 1 组:一个或多个单词字符。
  • .* - 除换行字符外的任何 0+ 个字符,尽可能多。
  • 您可以改用捕获组。

    注意转义点 \. 以按字面意思匹配它。

    \bVores\sref\.:\s\d+-\d+\s+(\w+)
    

    模式匹配:

    • \bVores\sref\.:\s\d+-\d+\s+ 你的模式变成了匹配
    • (\w+) 捕获第1组,匹配1+个单词字符

    Regex demo