我试图从Python/PHP的背景学习C,并尝试从Python移植一个脚本到入门。在
该脚本逐行读取一个文本文件(大约150K行),应用一个regex列表,直到其中一个匹配为止,获得命名组结果并将值作为类的属性添加。在
以下是数据的外观(以“No”开头的每一行都是新记录的开始):
No.813177294 09/01/1987 150 Tit.INCAL INDÚSTRIA DE CALÇADOS LTDA (BR/PE) *PARÁGRAFO ÚNICO DO ART. 162 DA LPI. Procurador: ROBERTO C. FREIRE No.901699870 02/06/2009 LD6 *Exigência Formal não respondida, Pedido de Registro de Marca considerado inexistente, de acordo com o Art. 157 da LPI No.830009817 12/12/2008 003 Tit.BIOLAB SANUS FARMACÊUTICA LTDA. (BR/SP) C.N.P.J./C.I.C./NºINPI : 49475833000106 Apres.: Nominativa ; Nat.: De Produto Marca: ENXUG NCL(9) 05 medicamentos para uso humano; preparações farmacêuticas; diuréticos, analgésicos; anestésicos; anti-helmínticos; antibióticos; hormônios para uso medicinal. Procurador: CRUZEIRO/NEWMARC PATENTES E MARCAS LTDA
以及正则表达式的外观:
^{pr2}$1)我是否可以使用相同的概念,在每一行中应用Dictionary<string, Regex>
中的每一个,直到一个匹配为止?在
2)如果我这样做,有没有办法得到命名组结果的Dictionary<string, string>
?(在这个阶段,我可以把一切都当作一根弦)。在
3)如果我有这样的课。。。在
class Record
{
public string Number { get; set; }
public string Date { get; set; }
public string Code { get; set; }
public string Ncl { get; set; }
public string Especification { get; set; }
public string Document { get; set; }
public string Description { get; set; }
}
…有没有办法用命名组的值来设置属性?在
4)我完全忽略了这一点,试图用静态类型化语言编写代码,但仍然在动态类型化语言中思考?如果是这样,我能做什么?在
很抱歉这个有点冗长的问题。我真的试着继续把这段话缩短些:-)
提前谢谢。在
很抱歉,这不是一个具体的答案,但是您可以使用IronPython将您的脚本转换为在CLR下运行,然后转到C?在
1.当然
2.参见示例here
是的,基本概念和2相同
4.不,C#足够灵活,可以让您将您的架构移植到
还要考虑研究this book作为Python程序员对.NET最好的介绍,反之亦然(我有偏见,曾是一名技术编辑,也是作者的朋友,但我认为这在客观上是站得住脚的;-)。在
(?<first>group)(?'second'group)
,返回的Match对象将支持这样的命名检索。您可以从此对象构建词典,也可以直接传递匹配对象var match = Regex.Match("subject", "regex");
var matchedText = match.Groups("first")
参见Named Groups in .Net和{a2}
Record Record.Parse(namedValueCollection)
是一种方法相关问题 更多 >
编程相关推荐