C# 不后跟其他字符时按字符分割正则表达式

C# 不后跟其他字符时按字符分割正则表达式,c#,regex,C#,Regex,如果后面没有CMB 示例 测试数据 abcd-sdfsdf-cmb sdfsdf-cmb 预期产量 abcd sdfsdf-cmb abcd-cmb sdfsdf 到目前为止我拥有的 Regex.Split(operation, @"-+") 返回 abcd sdfsdf cmb abcd cmb sdfsdf 笔记 上面只返回了-上的拆分,但是我不确定如何展望CMB您可以使用这个基于负前瞻的正则表达式: Regex.Split(operation, @"-(?!

如果后面没有
CMB

示例

测试数据

abcd-sdfsdf-cmb
sdfsdf-cmb
预期产量

abcd
sdfsdf-cmb

abcd-cmb
sdfsdf
到目前为止我拥有的

Regex.Split(operation, @"-+")
返回

abcd
sdfsdf
cmb

abcd
cmb
sdfsdf
笔记
上面只返回了
-
上的拆分,但是我不确定如何展望
CMB

您可以使用这个基于负前瞻的正则表达式:

Regex.Split(operation, @"-(?!cmb)")
(?!cmb)
是一种消极的前瞻,这意味着只有当它后面没有
cmb

时,才匹配
-
,您可以使用它来实现这一点

Regex.Split(operation, @"-(?!(?i:cmb))")

前瞻断言字符串中紧跟在
-
后面的不是“CMB”。内联修饰符
(?i:…)
用于以不区分大小写的方式匹配子字符串。

我在正则表达式中没有看到任何与
CMB
相关的内容。。看起来你发布了一个随机的正则表达式,只是想说这是我所知道的,特里迪不知道怎么做,真是不幸