纠正我的正则表达式[^-]*[^-]。

问题描述 投票:0回答:1

我被提供了一个带有连字符的字段来包裹数据。然而,有时数据中会包含一个连字符。数据的例子。

-4869--149x-1--2925--2927--1520x-1--2459--3400--3403--3404--3410x14--3412--1645--3413--3406x14--3408x14--3415--204x-4--1507x-40--3460x14--4527x-1--3973x-1--1599x-1-

第二项 -149x-1- 在1之前的连字符处被拆分了。

我希望纠正我的regex,使其跳过x-,转到下一个连字符。

regex vb.net
1个回答
1
投票

多么笨拙的日期格式。看起来你的数据流中的每个项目都有一个前导和后导的连字符来分隔它。所以,出于所有实际的目的,数据流中的每一项都是由两个连字符('--')隔开的,第一项和最后一项分别在前面或后面有一个连字符。

假设是这样的话,最简单的解析方法就是

  • 去掉整个字符串中的前导和尾部的连字符,那么
  • 分而治之 --

所以,你会有类似这样的代码。

"-v-1--v-2--v-3--v-4-"
.Trim("-")
.Split(
  new[]{"--"} , // need to do it this way because of overload restrictions
  StringSplitOptions.RemoveEmptyEntries
) ;

这样就会产生一个数组 [ "v-1", "v-2", "v-3", "v-4" ].

[编辑说明:如果这个字符串中的单个数据元素可能以连字符开头或结尾,那么你可能就会被解决了。]

© www.soinside.com 2019 - 2024. All rights reserved.