Powershell中正则表达式的等效于\ K是多少?

sha*_*njk 1 regex powershell regex-lookarounds

我在regex101上创建了一个正常表达式,它按预期工作,但问题是在Powershell中一个部分显然无效; 这个\K.

本质上,我正在寻找一个字符串的实例,并在字符串的实例后返回整个单词.所以这是一个例子:

\btest\s+\K\S+
Run Code Online (Sandbox Code Playgroud)

这会查找单词的每个示例test并返回单词后面的单词.我确实尝试过使用Lookaheads和Lookbehinds进行实验,而其中一些确实有效,但它们仍然要么返回,test要么还有其他不必要的字符.

有没有办法\K在powershell中复制?或者甚至更好,任何允许PowerShell使用的附加组件\K

bri*_*ist 7

这样的事情怎么样: (?<=\btest\b)\s+(\w+)\S+

一个积极的后视,test其次是您正在寻找的其他东西,以及后续单词的捕获组.

PowerShell使用.Net RegEx引擎,它不支持\K你所知道的(它用于引用.Net中的命名捕获组).你不能改变它.

您可以使用与.Net兼容的正则表达式的第三方实现,但似乎不太可能存在这样的事情,因为一般来说.Net有一个非常好的全功能引擎.