我有一个dic.txt(文本)文件。该文件的内容如下:
(watyai) w a t^ j a j^
(noi) n @@ j^
(mai) m a j^
我想阅读这些内容并像这样解析它们:
watyai
noi
mai
w a t^ j a j^
n @@ j^
m a j^
我怎样才能使用C#?
答案 0 :(得分:1)
您可以使用正则表达式:
Regex regex = new Regex(@"^\(([^)]+)\)\s+(.+)$");
string[] lines = File.ReadAllLines(pathToFile);
foreach (string line in lines)
{
Match match = regex.Match(line);
if (match.Success)
{
string key = match.Groups[1].Value;
string value = match.Groups[2].Value;
}
}
答案 1 :(得分:0)
以下正则表达式将从括号中提取第一个单词,并读取其周围的所有其他内容(忽略空格)直到行尾
string[] dic_lines = File.ReadAllLines("path_to_dic_file.dic");
List<string> l_group1 = new List<string>();
List<string> l_group2 = new List<string>();
foreach(subjectString in dic_lines)
{
Regex regexObj = new Regex(@"(\(.*?\))\s*(.*)\s*");
Match match = regexObj.Match(subjectString);
if (matchResults.Success) {
l_group1.Add(match.Groups[1].Value);
l_group2.Add(match.Groups[2].Value);
}
}
File.WritaAllLines("outputfile.txt", l_group1);
File.AppendAllLines("outputfile.txt", l_group2);
答案 2 :(得分:-1)
第一个RegEx:
(?<=\()\b\w+\b(?=\))
第二个RegEx:
(?<=(\(\w+\)(\s{3})))(.*)