C# vCard 4.0正则表达式
不久前,我创建了一个程序来处理vCard文件。这几乎可以通过以下几点完美实现:C# vCard 4.0正则表达式,c#,regex,vcf-vcard,C#,Regex,Vcf Vcard,不久前,我创建了一个程序来处理vCard文件。这几乎可以通过以下几点完美实现: (?<FIELD>[^\s:;]+)(;(?<PARAM>[^:]+))*:(?<CONTENT>.*(?>\r\n[ \t].*)*)$ e、 g 如您所见,我希望捕获整个参数,包括type=“…”内容 因此,我的问题是:我的代码是否可以修改,或者我是否必须编写两个进程(一个用于旧类型,一个用于新的4.0版本;理想情况下,我希望两者都支持),如果可以,如何编写?(顺便说一
(?<FIELD>[^\s:;]+)(;(?<PARAM>[^:]+))*:(?<CONTENT>.*(?>\r\n[ \t].*)*)$
e、 g
如您所见,我希望捕获整个参数,包括type=“…”内容
因此,我的问题是:我的代码是否可以修改,或者我是否必须编写两个进程(一个用于旧类型,一个用于新的4.0版本;理想情况下,我希望两者都支持),如果可以,如何编写?(顺便说一下,我正在使用c#和.NET4.0)
注意。请尝试以下正则表达式:
(?<FIELD>[^\s:;]+)(;(?<PARAM>[^=:;]+)=\"?(?<VALUE>[^:;]+)\"?)*:(?<CONTENT>[^;]*;?)*
以及4.0示例:
ADR;TYPE=work;LABEL="42 Plantation St.\nBaytown, LA 30314\nUnited States of America"
:;;42 Plantation St.;Baytown;LA;30314;United States of America
它还与vCard 4.0规范中的示例相匹配:
我的免责声明是,我在vCard方面没有任何专门知识,我只是浏览了规范的一部分,并在玩的时候查看了一些示例,因此我可能遗漏了一些边缘案例。您应该认真添加更多关于“您的代码”的信息,这些信息可以/不能修改,为了支持一切…vCard 4.0规范中的照片字段怎么样:
photo:data:image/jpeg;base64,Miicajcadogawibagicbeuwdqyjkozihvaqeebqawdzelmaka1ebhmcvmxldaqbgnvbaoti05ldhnyxblienbw11bmljyxrpb25zienvcnbvcmf0aw9umrwggydqlexnjbmzvcm1hdglvbibtexn0
(?<FIELD>[^\s:;]+)(;(?<PARAM>[^=:;]+)=\"?(?<VALUE>[^:;]+)\"?)*:(?<CONTENT>[^;]*;?)*
ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
ADR;TYPE=work;LABEL="42 Plantation St.\nBaytown, LA 30314\nUnited States of America"
:;;42 Plantation St.;Baytown;LA;30314;United States of America
ADR;GEO="geo:12.3457,78.910";LABEL="Mr. John Q. Public, Esq.\n
Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\n
U.S.A.":;;123 Main Street;Any Town;CA;91921-1234;U.S.A.