You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法用正则表达式分割字符串:apple与apples匹配失败问题排查

问题分析与解决

正则表达式的错误原因

你用的apple*和apple?逻辑完全不对,正则里的*和?是修饰紧邻它的前一个字符,不是整个单词的后缀:

  • apple*:实际匹配appl后面跟0个或多个e(比如appl、apple、appleee),根本匹配不到apples里的s
  • apple?:实际匹配appl后面跟0个或1个e(也就是appl或apple),同样碰不到apples的s

正确的正则写法

要同时匹配apple和apples,应该用apples?——这里的?修饰前面的s,表示s可以有0个或1个,刚好覆盖两种单词形式。

修正后的代码

如果不需要保留分割的apple/apples:

$spl = 'apples?'
'This apple for you','These apples for you' | % {$_ -split $spl}

如果想把匹配的单词也保留在分割结果里(对应你原代码用捕获组的需求):

$spl = '(apples?)'
'This apple for you','These apples for you' | % {$_ -split $spl}

内容的提问来源于stack exchange,提问作者Oleg0341

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 08:39:57