正则表达式只抓取部分字符串 - 只有最大长度的数字

时间:2013-07-02 06:39:15

标签: c# regex

我需要一些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");

有人能帮我找到合适的模式吗?

1 个答案:

答案 0 :(得分:3)

你很亲密

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

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

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


你也可以这样做

modify.Substring(modify.IndexOf("FEW"),modify.IndexOf("FEW")+5);
相关问题