使用正后视的正则表达式在 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+个单词字符
我正在尝试使用正后向匹配“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+个单词字符