C# 解析此文本的其他方法?使用尽可能少的代码
我有这个文本,我想解析它以获得这些人的名字。 最简单的解析方法是什么?是否有一些工具/语言或C语言的扩展允许我捕捉这种结构C# 解析此文本的其他方法?使用尽可能少的代码,c#,parsing,C#,Parsing,我有这个文本,我想解析它以获得这些人的名字。 最简单的解析方法是什么?是否有一些工具/语言或C语言的扩展允许我捕捉这种结构 我知道我可以在C#中使用一些Split,但我想听听各位专家的意见,用另一种方式,更动态、更流畅地使用它 如果可能,结果可以是一个类,包含国家列表、函数列表、名称列表,也可以是一个结构化的动态/扩展对象 Country, Goleiros [list of names] Defensores [list of nam
我知道我可以在C#中使用一些Split,但我想听听各位专家的意见,用另一种方式,更动态、更流畅地使用它 如果可能,结果可以是一个类,包含国家列表、函数列表、名称列表,也可以是一个结构化的动态/扩展对象
Country,
Goleiros
[list of names]
Defensores
[list of names]
巴西
戈莱罗斯:胡里奥·塞萨尔(多伦多足球俱乐部),杰斐逊(博塔福戈·布拉)e
维克托(米内罗大西洋酒店)
防守球员:蒂亚戈·席尔瓦(巴黎圣日耳曼FRA),大卫·路易斯
(切尔西荷兰队)、但丁(拜仁慕尼黑啤酒队)、亨里克(那不勒斯意大利队),
丹尼尔·阿尔维斯(巴塞罗那ESP)、麦孔(罗马ITA)、马塞洛(皇家马德里)
马德里ESP)e麦克斯韦(巴黎圣日耳曼FRA)
Meio campistas:Luiz Gustavo(沃尔夫斯堡啤酒),Paulinho
(托特纳姆荷兰队)、拉米雷斯(切尔西荷兰队)、费尔南迪尼奥(曼彻斯特队)
曼城(荷兰),赫尔南斯(国际米兰),奥斯卡(切尔西荷兰)e
威利安(切尔西-荷兰)
阿塔坎特斯:绿巨人(泽尼特鲁斯)、伯纳德(顿涅茨克矿工工会)、弗雷德
(弗鲁米内斯文胸),Jô(大西洋文胸)e内马尔(巴塞罗那ESP)
Técnico:Luiz Felipe Scolari(文胸)
克罗西亚
Goleiros:Stipe Pletikosa(罗斯托夫罗斯),Danijel Subasic(摩纳哥FRA)e
Oliver Zelenika(萨格勒布洛科莫蒂夫铁路公司)
辩护人:Darijo Srna(顿涅茨克矿工联合会)、Domagoj Vida(迪纳莫)
基辅大学、西梅·弗萨尔伊科大学(热那亚大学)、伊万·斯特里尼克大学(德尼普罗大学),
Danijel Pranjic(Panatihnaikos GRE),Vedran Corluka(Lokomotiv
Moscou RUS)、Dejan Lovren(荷兰南安普敦)、Gordon Schindelfeld
(Panathinaikos GRE)e Igor Bubnjic(乌迪内斯伊塔)
梅奥·坎皮斯塔斯:卢卡·莫德里奇(皇家马德里ESP)、伊万·拉基蒂奇
(塞维利亚ESP)、马特奥·科瓦西奇(国际米兰)、尼科·克拉尼查尔
皇后公园游骑兵队(ING)、马塞洛·布罗佐维奇(萨格勒布迪纳莫CRO)、奥格恩
武科耶维奇(基辅大学迪纳莫分校)、米兰·巴德尔吉(汉堡啤酒)、伊万
莫西尼语(Rijeka CRO)、马里奥·帕萨利克语(Hajduk Split CRO)和萨米尔语
(格塔菲ESP)
阿塔坎特斯:马里奥·曼祖基奇(拜仁市政啤酒),尼卡·耶拉维奇
(赫尔城ING)、伊维卡·奥利奇(沃尔夫斯堡艾尔)、爱德华多·达席尔瓦
(顿涅茨克矿工联合会)、杜耶警察局(萨格勒布迪纳莫CRO)、伊沃·伊利切维奇
(汉堡啤酒)、伊万·佩里西奇(沃尔夫斯堡啤酒)和安特雷比奇
(佛罗伦萨)
Técnico:Niko Kovac(首席执行官)
您可以使用正则表达式
选择:或之后和之前的所有内容(
更新:
C#库为您提供了一种匹配字符串的方法。我可以想象您希望使用这种方法
它将返回一个字符串列表,您可以对其进行迭代,或者使用string.join将所有字符串压缩成一行。如果您为测试的结构定义了规则,这将有所帮助。因此: 定义您的数据结构-看起来它可以基于以下内容,其中球员类别由position.player name和club name组成
public class myFootballData
{
public string CountryName
public List<Players>
}
公共类myFootballData
{
公共字符串国家名称
公开名单
}
- 逐行处理数据,遍历数据文件或字符串。如果是字符串,则将其拆分为换行上的数组
- 如果一行为空,则忽略
- 如果一行没有冒号或括号,那么它将用国家名称启动一个新的myFootBall对象
- 将以下非国家行拆分为:{然后{给出职位、姓名和俱乐部
这是一个指向解决方案的指针,不是一个完全有效的解决方案。仍然需要您的输入才能完成。您可以尝试使用正则表达式捕获冒号/逗号和括号之间的文本,其中包含惰性量词,如
[:|,](.*?)[(].*?[)]
这应该让您开始。您希望如何解析数据?解析后的数据是什么样子的(例如,类、另一个文本文件等)?此外,您不需要发布整个文本文档,只需发布一个代表性的示例,就可以让我们看到格式。请不要将整个文本放在这里,使用一个段落左右,然后将其余部分放在PasteBin或类似文件中。这样说,您可能会遇到一些自然语言处理(NLP)问题。你不需要发布全文,也不需要发布你尝试了什么以及你是如何被卡住的?我知道我可以使用C#中的一些拆分,但我想听听你的专家们的另一种方法。首先展示你自己的努力。最后的玩家名用“e”分隔,而不是“a”因此,它由
、
或'e'分隔。太模糊了,不会提示要填充的结构