按单词拆分字符串,除非

问题描述 投票:0回答:1

我想用“for”来分割句子,除非句子中出现“all for”。它几乎可以工作,但由于某种原因缺少一个字母“s”。怎么了?

$arr = 'It is all for you','It is for you'
$arr | % {$_ -split '[^all] for'}

enter image description here

regex powershell
1个回答
0
投票

正则表达式

[^all]
的意思是不 (
^
) 出现任何字母
a
l
l

获得相同效果的更短方法是

[^al]

但是你想匹配

all
,所以你应该添加一个
+
,这意味着这些字母出现1次或多次。

$arr = 'It is all for you','It is for you'
$arr | % {$_ -split '[^al]+ for'}

输出:

It is all for you

 you
© www.soinside.com 2019 - 2024. All rights reserved.