C# 正则表达式仅获取字符串的一部分-数字仅具有最大长度
我需要一些C#regex表达式的帮助。基本上,我正在将机场元数据改写为更友好的格式 对于那些不熟悉METAR的人,这里有一个例子:KLAX 020353Z 24004KT 9SM FEW150 SCT250 21/18 A2987 RMK AO2 SLP112 T02060178$ 基本上,我想做的是重写FEW150,改为“150时少云”。我不太擅长正则表达式,下面是我所拥有的(显然不起作用): 有人能帮我找到正确的模式吗?你很接近C# 正则表达式仅获取字符串的一部分-数字仅具有最大长度,c#,regex,C#,Regex,我需要一些C#regex表达式的帮助。基本上,我正在将机场元数据改写为更友好的格式 对于那些不熟悉METAR的人,这里有一个例子:KLAX 020353Z 24004KT 9SM FEW150 SCT250 21/18 A2987 RMK AO2 SLP112 T02060178$ 基本上,我想做的是重写FEW150,改为“150时少云”。我不太擅长正则表达式,下面是我所拥有的(显然不起作用): 有人能帮我找到正确的模式吗?你很接近 modify = Regex.Replace(modify,
modify = Regex.Replace(modify, "FEW([0-9]{3})", "few clouds at $1");
^
标记字符串的开头,$
标记字符串的结尾,因此无法匹配,因为目标字符串位于中间位置,而不是字符串的唯一位置
$1
指的是第一个捕获组,但您的案例中没有任何捕获组
你也可以这样做
modify.Substring(modify.IndexOf("FEW"),modify.IndexOf("FEW")+5);
对
^
和$
表示字符串的“开始”和“结束”。和<代码>很少…<代码>部分在中间。美丽!我会在5分钟内接受这个答案,到时候它会让我满意的。:)
modify.Substring(modify.IndexOf("FEW"),modify.IndexOf("FEW")+5);