我有一些形式的字符串
string strA = "Cmd:param1:'C:\\SomePath\SomeFileName.ext':param2";
string strB = "Cmd:'C:\\SomePath\SomeFileName.ext':param2:param3";
我想在 ':' 上拆分这个字符串,这样我就可以提取 N 个参数。一些参数可以包含[明确]显示的文件路径,我不想拆分括号内的':'。我可以用正则表达式来做到这一点,但我对如何让正则表达式只有在冒号两边都没有“'”时才拆分感到困惑。
我尝试过
string regex = @"(?<!'):(?!')";
string regex = @"(?<!'(?=')):";
仅当左侧没有“'”且右侧没有“'”时才继续匹配(向后/向前看负),但这仍然在 'C:\SomePath\SomeFileName.ext' 中包含的冒号上拆分。
我怎样才能修改这个正则表达式来做我需要的?
谢谢你的时间。
注意:我发现以下正则表达式有效。但是,我想知道是否有更好的方法来做到这一点?
string regex = @"(?<!.*'.*):|:(?!.*'.*)";