C# 如何读取文本文件,同时读取每个单词/数字/标点符号(或仅仅是符号)开头的坐标?
例如,我有一个文本文件:C# 如何读取文本文件,同时读取每个单词/数字/标点符号(或仅仅是符号)开头的坐标?,c#,text-files,C#,Text Files,例如,我有一个文本文件: type beg = record str: string[25]; b: boolean; lon: longint; end; 我将其转换为链表: LinkedList<string> inputText = new LinkedList<string>( Regex.Split(text, @"\s+|(?!^|-)(?=\p{P})|(?<=\p{P})(?<!-)(?!$)")); 如何
type beg = record
str: string[25];
b: boolean;
lon: longint;
end;
我将其转换为链表:
LinkedList<string> inputText = new LinkedList<string>(
Regex.Split(text, @"\s+|(?!^|-)(?=\p{P})|(?<=\p{P})(?<!-)(?!$)"));
如何创建此文本文件中每个元素的坐标(行和列)列表
在我的示例中,它将如下所示:
type => beg => = => record => str => : => str => ...
1,1 => 1,6 => 1,10 => 1,12 => 2,5 => ...
因为我可以逐行读取文件,所以很容易找到行号,但这是列的问题。让我们看看:
str: string[25]; //here is 4 free spaces before text
我的正则表达式将其拆分为:
str => : => string => [ => 25 => ] => ;
所以,如果我试图通过元素的长度来计算每个元素的坐标,那么元素之间的自由空间就会出现问题
我可以一个符号一个符号地读取文件,但也许这里有更好的解决方案?我刚刚得到它。我需要按可用空间分割每一行,以知道它在哪里,并且仅在此之后使用我的正则表达式将单词和数字从点状标记中分割出来。不清楚您在问什么。发布输入文件的一些行(逐字),以及所需输出的一些行。用简单的语言解释yopu想要做什么。这个超级regexp应该做什么?给你的助手一个帮助你的机会。正则表达式中的每个匹配都将包括匹配的字符偏移量和长度,这样你就完成了一半。还需要将行索引到字符偏移,以便可以将原始字符偏移映射到行+偏移对。或者,您可能会发现逐行阅读更容易,只需将正则表达式分别应用于每一行。你至少应该尝试一下;否则,你似乎只是在请别人为你做工作。