繁体   English   中英

当后面没有其他字符时,正则表达式在字符上拆分

[英]regex split on character when not followed by other characters

我需要在字符上拆分-当后面没有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

您可以使用Negative Lookahead来实现这一点。

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

先行断言什么紧跟-字符串中不是“招商银行”。 内联修饰符(?i: ... )用于以不区分大小写的方式匹配子字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM