gpt4 book ai didi

C# 正则表达式匹配大小写 - 拆分字符串并写入文件输出

转载 作者:太空宇宙 更新时间:2023-11-03 21:04:53 24 4
gpt4 key购买 nike

基本上我有一个这种格式的记录文本文件:

(1909, 'Ford', 'Model T'),
(1926, 'Chrysler', 'Imperial'),
(1948, 'Citroën', '2CV'),

我想输出成如下格式的文本文件

new Vehicle() { Id = 1, Year = 1909, Make = "Ford", Model = "Model T" },
new Vehicle() { Id = 2, Year = 1926, Make = "Chrysler", Model = "Imperial" },
new Vehicle() { Id = 3, Year = 1948, Make = "Citroën", Model = "2CV" },

我知道我需要将每一行分成相关的文本部分,例如试图遵循类似 this 的内容所以问题。但是在如何获取 Year、Make 和 Model 的相关匹配字符串部分方面遇到了障碍。

到目前为止,我已经找到了这个,它找到了括号之间的所有内容:

\(([^()]+)\)

但不确定如何将值分组并用逗号分隔:

非常感谢任何帮助。

最佳答案

正则表达式让他们分组:

\((\d+),\s+[']([\w\së]+)['],\s+[']([\w\s]+)[']\)[,]*

请注意 Citroën => 您必须输入所有不在 a-z、A-Z 内的特殊符号(如 ë ü ÿ 等)

要在代码中使用,您将获得第一组:

string cars = @"(1909, 'Ford', 'Model T'),"
string pattern = @"\((\d+),\s+[']([\w\së]+)['],\s+[']([\w\s]+)[']\)[,]*";
var lResult = Regex.Match(cars, pattern);

if(lResult.Success)
foreach( var iGroup in lResult.Groups)
Console.WriteLine(iGroup);

在 lResult.Groups 中你得到了关于汽车的信息,你只是根据需要将它输出到文件中。

C# 6.0:

Console.WriteLine($"new Vehicle() {{ Id = 1, Year = {lResults.Groups[1]}, Make = \"{lResults.Groups[2]}\", Model = \"{lResults.Groups[3]}\"}},");

旧语法:

Console.WriteLine(@"new Vehicle() { Id = 1, Year = "+ lMatch.Groups[1]+", Make = "+ lMatch.Groups[2] + ", Model = "+ lMatch.Groups[3] + " },");

一旦将其自动化到 for 循环中,您就可以轻松添加 Id。

我的示例在 Groups[0] 中有整个字符串,所以这就是为什么我的索引从 1 开始到 3。

正如@Toto所说,\w已经包含了\d,那就不用写了。

关于C# 正则表达式匹配大小写 - 拆分字符串并写入文件输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41874101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com