C# 用于在多个不同定界符中提取字符串的正则表达式
我试图在c#应用程序中提取多个分隔符之间的字符串。示例如下:C# 用于在多个不同定界符中提取字符串的正则表达式,c#,regex,C#,Regex,我试图在c#应用程序中提取多个分隔符之间的字符串。示例如下: #K06[1234567-0257;S2W546#20-H2] 所需输出: 0257S2W54620 我需要提取第一个-和之间的内容,追加之间的内容和,最后在和最后的-之间添加字符串 我希望使用正则表达式实现这一点,因为字符串将来可能会更改 我很难在一个正则表达式中附加3个子字符串 如果您的输入不会改变,并且您不愿意使用正则表达式,您可以使用以下一行: var y = x.Split('-')[1].Replace(";", ""
#K06[1234567-0257;S2W546#20-H2]
所需输出:
0257S2W54620
我需要提取第一个-
和之间的内容代码>,追加之间的内容
和
,最后在
和最后的-
之间添加字符串
我希望使用正则表达式实现这一点,因为字符串将来可能会更改
我很难在一个正则表达式中附加3个子字符串 如果您的输入不会改变,并且您不愿意使用正则表达式,您可以使用以下一行:
var y = x.Split('-')[1].Replace(";", "").Replace("#", "");
- 我们使用
Split()
在前后修剪代码
- 我们使用
Replace()
来消除噪声
完整代码:
using System;
using System.Linq;
public class Program
{
public static void Main()
{
var x = "#K06[1234567-0257;S2W546#20-H2]";
var y = x.Split('-')[1].Replace(";", "").Replace("#", "");
Console.WriteLine(y == "0257S2W54620");
Console.WriteLine(y);
}
}
可以执行您想要的操作的正则表达式是:
-([^;]+);([^#]+)#([^-]+)
然后可以连接组1、2和3
在上玩吧,谢谢你的回答。很好!即使是一个简单的-(*);(.*)#(.*)-
本可以对这样的简单字符串执行此操作。你应该读一读关于regex的书,网上有很多ReSource。甚至像这样的网站也能让你们在几步之内理解基本的正则表达式。