Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式仅获取字符串的一部分-数字仅具有最大长度_C#_Regex - Fatal编程技术网

C# 正则表达式仅获取字符串的一部分-数字仅具有最大长度

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,

我需要一些C#regex表达式的帮助。基本上,我正在将机场元数据改写为更友好的格式

对于那些不熟悉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
指的是第一个捕获组,但您的案例中没有任何捕获组


你也可以这样做

modify.Substring(modify.IndexOf("FEW"),modify.IndexOf("FEW")+5);

^
$
表示字符串的“开始”和“结束”。和<代码>很少…<代码>部分在中间。美丽!我会在5分钟内接受这个答案,到时候它会让我满意的。:)
modify.Substring(modify.IndexOf("FEW"),modify.IndexOf("FEW")+5);