Powershell 中正则表达式的 \K 等价物是什么?
What is the equivalent to \K for regex in Powershell?
我在 regex101 上创建了一个正则表达式,它按预期工作,但问题是其中一部分在 Powershell 中显然无效; \K
。
本质上我是在寻找字符串的实例,并在字符串实例之后返回整个单词。所以这是一个例子:
\btest\s+\K\S+
这会找到单词 test
及其后的单词 returns 的每个示例。我确实尝试过 Lookaheads 和 Lookbehinds,虽然其中一些确实有效,但它们仍然返回 test
或其他不必要的字符。
有没有办法在 powershell 中复制 \K
?或者更好的是,任何允许 PowerShell 使用 \K
的附加组件?
What about something like this: (?<=\btest\b)\s+(\w+)\S+
对 test
的正面回顾,然后是您要查找的其他内容,以及对以下单词的捕获组。
PowerShell 使用 .Net RegEx 引擎和 it doesn't support \K
as you know it(它用于引用 .Net 中的命名捕获组)。你无法改变这一点。
您可以使用与 .Net 兼容的正则表达式的第三方实现,但似乎不太可能有这样的事情,因为通常 .Net 有一个非常好的全功能引擎。
我在 regex101 上创建了一个正则表达式,它按预期工作,但问题是其中一部分在 Powershell 中显然无效; \K
。
本质上我是在寻找字符串的实例,并在字符串实例之后返回整个单词。所以这是一个例子:
\btest\s+\K\S+
这会找到单词 test
及其后的单词 returns 的每个示例。我确实尝试过 Lookaheads 和 Lookbehinds,虽然其中一些确实有效,但它们仍然返回 test
或其他不必要的字符。
有没有办法在 powershell 中复制 \K
?或者更好的是,任何允许 PowerShell 使用 \K
的附加组件?
What about something like this: (?<=\btest\b)\s+(\w+)\S+
对 test
的正面回顾,然后是您要查找的其他内容,以及对以下单词的捕获组。
PowerShell 使用 .Net RegEx 引擎和 it doesn't support \K
as you know it(它用于引用 .Net 中的命名捕获组)。你无法改变这一点。
您可以使用与 .Net 兼容的正则表达式的第三方实现,但似乎不太可能有这样的事情,因为通常 .Net 有一个非常好的全功能引擎。