当没有跟随其他字符时,正则表达式在字符上分裂

时间:2015-02-05 23:01:52

标签: c# regex

如果没有-

,我需要拆分字符CMB

示例

测试数据

abcd-sdfsdf-cmb
sdfsdf-cmb

预期输出

abcd
sdfsdf-cmb

abcd-cmb
sdfsdf

到目前为止我有什么

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

返回

abcd
sdfsdf
cmb

abcd
cmb
sdfsdf

请注意 以上只是在-上返回拆分 但是,我不确定如何展望CMB

感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:5)

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

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

(?!cmb)是一个否定前瞻,这意味着仅当-没有跟cmb后才匹配{。}}。

答案 1 :(得分:2)

您可以使用Negative Lookahead来实现此目标。

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

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