用正则表达式和搜索行解析C#中的文件
我有很多行的.dat文件,如下所示:用正则表达式和搜索行解析C#中的文件,c#,regex,search,C#,Regex,Search,我有很多行的.dat文件,如下所示: 2975,"Koltsovo Airport","Yekaterinburg","Russia","SVX","USSS",56.743099212646,60.802700042725,764,5,"N","Asia/Yekaterinburg","airport","OurAirports" 我需要从这个文件中得到的是按标识符搜索行,在本例中是USSS,并得到2个值:56.743099212646,60.802700042725 我写的代码很小,但我的
2975,"Koltsovo Airport","Yekaterinburg","Russia","SVX","USSS",56.743099212646,60.802700042725,764,5,"N","Asia/Yekaterinburg","airport","OurAirports"
我需要从这个文件中得到的是按标识符搜索行,在本例中是USSS,并得到2个值:56.743099212646,60.802700042725
我写的代码很小,但我的C语言水平不足以完成我的任务:(
请帮助我,什么代码需要按标识符搜索行(例如USSS),并获得2个值56.743099212646,60.802700042725。看起来您不应该找到USSS,只需通过
\d+\。\d{12}
更新
使用usss
usss\”,(\d+\.\d{12}),(\d+\.\d{12})的版本包含您的数据的组[1]和[2]在usss后面用“,”分隔两个数字
将re2替换为:“USSS\”,([0-9]+\.[0-9]+),([0-9]+\.[0-9]+)”
重放的Thnaks!使用正则表达式代码解决了问题:
\"USSS\",(\d+\.\d{12}),(\d+\.\d{12})
并从组[1]和[2]中获取我的值
Regex g = new Regex(@"\""USSS\"",(\d+\.\d{12}),(\d+\.\d{12})", RegexOptions.IgnoreCase | RegexOptions.Singleline);
using (StreamReader r = new StreamReader("airports.dat"))
{
string line;
while ((line = r.ReadLine()) != null)
{
Match m = g.Match(line);
if (m.Success)
{
string v = m.Groups[1].Value;
string v2 = m.Groups[2].Value;
MessageBox.Show(v);
MessageBox.Show(v2);
}
// Do stuff with line.
}
}
在这个文件(.dat)中有很多行,在我的程序中,我希望通过标识符(usss)搜索这些数字。这是可能的,还是我需要使用其他东西?
\"USSS\",(\d+\.\d{12}),(\d+\.\d{12})
Regex g = new Regex(@"\""USSS\"",(\d+\.\d{12}),(\d+\.\d{12})", RegexOptions.IgnoreCase | RegexOptions.Singleline);
using (StreamReader r = new StreamReader("airports.dat"))
{
string line;
while ((line = r.ReadLine()) != null)
{
Match m = g.Match(line);
if (m.Success)
{
string v = m.Groups[1].Value;
string v2 = m.Groups[2].Value;
MessageBox.Show(v);
MessageBox.Show(v2);
}
// Do stuff with line.
}
}