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

C#正则表达式:匹配不以1-2个空白+MINNIE结尾的字符串

解决C#正则匹配问题:排除特定结尾的字符串

问题分析

你需要匹配的格式为:pippo + 一个或多个空格 + 数字 + 1-2个空格 + pluto + 一个或多个空格 + 数字 + 1-2个空格,但需排除以1-2个空格+MINNIE(不区分大小写)结尾的字符串。

你之前的正则无效,核心问题在于:

  • 负向预测断言仅检查紧跟的MINNIE,未包含前面的1-2个空格,也未处理大小写不敏感的需求
  • 未通过边界锚定确保匹配整个字符串,容易出现部分匹配的误判

正确的正则表达式

方式1:使用RegexOptions.IgnoreCase参数

string pattern = @"^(pippo\s+\d+\s{1,2})(pluto\s+\d+\s{1,2})(?!\s{1,2}MINNIE)$";
Match match = Regex.Match(inputString, pattern, RegexOptions.IgnoreCase);

方式2:正则内嵌入大小写不敏感标记

如果不想依赖外部参数,可在正则开头添加(?i)标记:

string pattern = @"(?i)^(pippo\s+\d+\s{1,2})(pluto\s+\d+\s{1,2})(?!\s{1,2}MINNIE)$";
Match match = Regex.Match(inputString, pattern);

关键细节说明

  • ^和$:锚定字符串首尾,确保匹配的是完整符合格式的内容,避免部分匹配导致的错误
  • (?!\s{1,2}MINNIE):负向预测断言,检查当前位置后不会出现1-2个空格+MINNIE的组合,结合大小写不敏感规则,精准排除目标结尾的字符串
  • \s{1,2}:简洁写法替代(\s){1,2},功能一致但更符合正则规范

测试示例

  • 匹配成功的字符串(符合格式且不以指定内容结尾):

    pippo 123 pluto 456
    pippo 789 pluto 012 (空白以空格表示)

  • 匹配失败的字符串(以1-2个空格+MINNIE结尾):

    pippo 123 pluto 456 minnie
    pippo 789 pluto 012 MINNIE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:43:10