我有这个文本,我想解析得到这些人的名字。 什么是最简单的解析方法?是否有一些工具/语言或C#语言的扩展允许我捕获这种结构?
我知道我可以在C#中使用一些Split,但我希望以另一种方式听取专家的意见,这样做更有活力和流畅。
如果可能,结果可以是一个类,具有国家列表,功能列表,名称列表,可能是结构化动态/扩展对象。
Country,
Goleiros
[list of names]
Defensores
[list of names]
巴西
Goleiros:JulioCésar(多伦多FC-CAN),Jefferson(Botafogo-BRA)e Victor(AtléticoMineiro-BRA)
Defensores:Thiago Silva(巴黎圣日耳曼-FRA),David Luiz (Chelsea-ING),Dante(Bayern de Munique-ALE),Henrique(Napoli-ITA), 丹尼尔阿尔维斯(巴塞罗那 - ESP),麦孔(罗马 - ITA),马塞洛(真实 马德里 - ESP)e Maxwell(巴黎圣日耳曼-FRA)
Meio-campistas:Luiz Gustavo(Wolfsburg-ALE),Paulinho (托特纳姆-ING),拉米雷斯(切尔西-ING),费尔南迪尼奥(曼彻斯特 City-ING),Hernanes(InterdeMilão-ITA),Oscar(Chelsea-ING)e 威廉(切尔西-ING)
Atacantes:Hulk(Zenit-RUS),Bernard(Shakhtar Donetsk-UCR),Fred (Fluminense-BRA),Jô(AtléticoMineiro-BRA)e Neymar(巴塞罗那-ESP)
Técnico:Luiz Felipe Scolari(BRA)
Croácia
Goleiros:Stipe Pletikosa(Rostov-RUS),Danijel Subasic(摩纳哥-FRA)e Oliver Zelenika(Lokomotiv Zagreb-CRO)
Defensores:Darijo Srna(Shakhtar Donetsk-UCR),Domagoj Vida(Dínamo) de Kiev-UCR),Sime Vrsaljko(Genoa-ITA),Ivan Strinic(第聂伯罗-UCR), Danijel Pranjic(Panathinaikos-GRE),Vedran Corluka(火车头 Moscou-RUS),Dejan Lovren(Southampton-ING),Gordon Schindelfeld (Panathinaikos-GRE)e Igor Bubnjic(乌迪内斯-ITA)
Meio-campistas:Luka Modric(皇家马德里 - ESP),Ivan Rakitic (Sevilla-ESP),Mateo Kovacic(InterdeMilão-ITA),Niko Kranjcar Queens Park Rangers-ING),Marcelo Brozovic(DínamoZagreb-CRO),Ognjen Vukojevic(DínamodeKiev-UCR),米兰巴德利(Hamburgo-ALE),伊万 Mocinic(Rijeka-CRO),Mario Pasalic(Hajduk Split-CRO)和Sammir (赫塔菲-ESP)
Atacantes:Mario Mandzukic(Bayern de Munique-ALE),Nikica Jelavic (赫尔城-ING),Ivica Olic(沃尔夫斯堡-ALE),Eduardo da Silva (Shakhtar Donetsk-UCR),Duje Cop(DínamoZagreb-CRO),Ivo Ilicevic (Hamburgo-ALE),Ivan Perisic(Wolfsburg-ALE)和Ante Rebic (佛罗伦萨-ITA)
Técnico:Niko Kovac(CRO)
答案 0 :(得分:2)
您可以使用正则表达式。
在以下之后选择所有内容:或,之前(
更新
C#库为您提供了匹配字符串的方法。我想你想要使用这个方法Match
它将返回一个字符串列表,你可以迭代它,或者使用string.join将它们全部压缩成一行。
答案 1 :(得分:1)
如果您定义测试结构的规则将有所帮助。所以:
定义您的数据结构 - 看起来它可以基于以下内容,其中类玩家由位置组成。球员姓名,俱乐部名称
public class myFootballData
{
public string CountryName
public List<Players>
}
这是指向解决方案的指针,而不是完全可行的解决方案。仍然需要您的输入才能完成。
答案 2 :(得分:1)
你可以尝试一个正则表达式,它使用像...这样的惰性量词来捕获冒号/逗号和括号之间的文本。
[:|,](.*?)[(].*?[)]
这应该让你开始。