1

我需要一些关于 C# 正则表达式的帮助。基本上我正在将机场 METAR 改写为更友好的格式。

对于那些不熟悉 METAR 的人,这里有一个例子:KLAX 020353Z 24004KT 9SM FEW150 SCT250 21/18 A2987 RMK AO2 SLP112 T02060178 $

基本上我想要做的是重写 FEW150 以读取“150 处的几朵云”。我不擅长正则表达式,这就是我所拥有的(显然不起作用):

modify = Regex.Replace(modify, "^FEW[0-9]{3}$", "few clouds at $1");

谁能帮我找到正确的模式?

4

1 回答 1

3

你很亲近

modify = Regex.Replace(modify, "FEW([0-9]{3})", "few clouds at $1");

^标记字符串的开头并$标记字符串的结尾,因此无法匹配它,因为您的目标字符串处于中间位置而不是唯一的字符串

$1指的是第一个捕获组,但在您的情况下没有..


你也可以这样做

modify.Substring(modify.IndexOf("FEW"),modify.IndexOf("FEW")+5);
于 2013-07-02T06:41:30.437 回答