2010-01-07 36 views
0

试图解析这一点,并返回以下3项:为什么正则表达式VB.Net丢失“ - ”当匹配?

  1. -30.25 31.46 -27.46 31.74
  2. -24.57 32.03 -16.86 32.88
  3. -13.82 33.19 -9.69 33.62

使用这下面的正则表达式我得到的比赛,但放弃每个分组前面的领先的“ - ”。尽管我在组中获得了“ - ”。这是我目前使用的表达式。

Dim regex As New System.Text.RegularExpressions.Regex("\b\-{0,1}\d{1,2}\.{0,1}\d{0,2}\s{1}\-{0,1}\d{1,2}\.{0,1}\d{0,2}\s{1}\-{0,1}\d{1,2}\.{0,1}\d{0,2}\s{1}\-{0,1}\d{1,2}\.{0,1}\d{0,2}\b", RegexOptions.Singleline) 

谢谢!

这里是源文本: [机场]

[航空公司]

-30.25 31.46 -27.46 31.74

-24.57 32.03 -16.86 32.88

-13.82 33.19 -9.69 33.62

[圆弧]

+1

看来你的样品被打破;但是将这些数字匹配为'( - ?\ d + \。\ d +)' – 2010-01-07 16:51:44

回答

2

\ B就不会在你输入的起始匹配,如果第一个字符是一个破折号( - )

+0

谢谢,就像一个魅力。 – user38349 2010-01-07 16:58:19

+0

很高兴为您服务!告诉你所有的朋友,所以在6分钟内给了我答案! :) – JoelFan 2010-01-07 17:31:44

0

如果我理解正确的话你的样品,尝试使用此:(-?\d+\.\d+ ?){4}