C# 正则表达式删除n个字符后的字符
两年没有编码后,我有点缺乏锻炼。 我在一个txt文件中有数千行。与此类似:C# 正则表达式删除n个字符后的字符,c#,regex,C#,Regex,两年没有编码后,我有点缺乏锻炼。 我在一个txt文件中有数千行。与此类似: X0 Y0 S-0.30 X0 Y0 S-0.21 X0 Y0 S-0.08 我需要从所有行中删除S-x.xx值。因此,每行只保存X Y和相关值 我尝试使用正则表达式 if (Line.Contains("S")) { Regex rgx = new Regex(@"S\d+(\.\d+)?"); Line = rgx.Replace(Line, "");
X0 Y0 S-0.30
X0 Y0 S-0.21
X0 Y0 S-0.08
我需要从所有行中删除S-x.xx值。因此,每行只保存X Y和相关值
我尝试使用正则表达式
if (Line.Contains("S"))
{
Regex rgx = new Regex(@"S\d+(\.\d+)?");
Line = rgx.Replace(Line, "");
}
return Line;
但我没有得到我所期望的结果。任何暗示都将不胜感激
谢谢您可以使用以下正则表达式: 并使用
$1
X
逐字匹配字符X
(区分大小写)
\d+
匹配一个数字(等于[0-9]
)一次或多次
Y
逐字匹配字符Y
(区分大小写)
\d+
匹配一个数字(等于[0-9]
)一次或多次您可以使用以下正则表达式:
并使用$1
X
逐字匹配字符X
(区分大小写)
\d+
匹配一个数字(等于[0-9]
)一次或多次
Y
逐字匹配字符Y
(区分大小写)
\d+
匹配一个数字(等于[0-9]
)一次或多次您可以使用
var result = Regex.Replace(s, @"\s+S-\d+(?:\.\d+)?", string.Empty);
见
-1+空格\s+
-S-
子字符串S-
-数字模式:\d+(?:\。\d+)
-1+位\d+
-可选序列:(?:\。\d+)
-dot\。
-1+位\d+
var result = Regex.Replace(s, @"\s+S-\d+(?:\.\d+)?", string.Empty);
见
-1+空格\s+
-S-
子字符串S-
-数字模式:\d+(?:\。\d+)
-1+位\d+
-可选序列:(?:\。\d+)
-dot\。
-1+位\d+
- 请理解,您真的只想删除以
S
开头的最后第三个术语。只需尝试用空字符串替换模式\sS.*$
:
Regex rgx = new Regex(@"\sS.*$");
string Line = "X0 Y0 S-0.30";
Line = rgx.Replace(Line, "");
Console.WriteLine(Line);
X0 Y0
请理解,您只想删除最后的第三个术语,它以
S
开头。只需尝试用空字符串替换模式\sS.*$
:
Regex rgx = new Regex(@"\sS.*$");
string Line = "X0 Y0 S-0.30";
Line = rgx.Replace(Line, "");
Console.WriteLine(Line);
X0 Y0
在
S
和\d+
之间缺少一个-
。根据您的样品,S.*
也足够了。谢谢。这就解决了我的问题。在s
和\d+
之间缺少一个-
。根据您的样品,S.*
也足够了。谢谢。这就解决了我的问题。