Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Powershell中正则表达式的\K等价于什么?_Regex_Powershell_Regex Lookarounds - Fatal编程技术网

Regex Powershell中正则表达式的\K等价于什么?

Regex Powershell中正则表达式的\K等价于什么?,regex,powershell,regex-lookarounds,Regex,Powershell,Regex Lookarounds,我已经在regex101上创建了一个正则表达式,它可以正常工作,但是问题是有一部分显然在Powershell中无效;\K 本质上,我是在寻找字符串的实例,并在字符串实例之后返回整个单词。下面是一个例子: \btest\s+\K\S+ 这将查找单词test的每个示例,并返回后面的单词。我确实尝试过使用Lookaheads和Lookbehinds,虽然其中一些确实有效,但它们仍然返回test或其他不必要的字符 有没有办法在powershell中复制\K?或者更好的是,是否有任何附加组件允许Powe

我已经在regex101上创建了一个正则表达式,它可以正常工作,但是问题是有一部分显然在Powershell中无效;
\K

本质上,我是在寻找字符串的实例,并在字符串实例之后返回整个单词。下面是一个例子:

\btest\s+\K\S+
这将查找单词
test
的每个示例,并返回后面的单词。我确实尝试过使用Lookaheads和Lookbehinds,虽然其中一些确实有效,但它们仍然返回
test
或其他不必要的字符

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

test
进行肯定的查找,然后是您正在查找的其他内容,并为下面的单词创建一个捕获组

PowerShell使用.Net正则表达式引擎和(用于引用.Net中的命名捕获组)。你不能改变这一点


您可能会使用一些与.Net兼容的第三方regex实现,但似乎不太可能有这样的情况,因为一般来说.Net有一个非常好且功能齐全的引擎。

虽然我喜欢的界面,并且已经使用过很多次,但RegEx101不支持.Net版本的regex。你应该考虑使用。可能的副本-标题不是什么,但是问题的核心和被接受的答案是关于ReXEX代码> \k/Cord>谢谢你的ReXExchange链接,这很有帮助!谢谢Briantist,这确实解决了问题!一开始很棘手,因为使用此正则表达式模式的select字符串没有按预期工作。我最终偶然发现使用[regex]::matches(,)来实现这一点。似乎并非所有在powershell中使用正则表达式的方法都是相同的:)。@shannonjk所有方法都使用相同的底层引擎,但它们以不同的方式返回结果,并且可能使用不同的默认值<代码>选择字符串例如,返回它自己的匹配对象(不仅仅是字符串)。运算符
-match
为单个左侧操作数返回布尔值,或为数组LH-op返回数组。
-replace
返回替换的字符串。一些填充
$Matches
,一些不填充。但在引擎盖下,他们都使用.Net正则表达式引擎。