gpt4 book ai didi

c# - 从 C# 中的字符串行获取特定字段或字符

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

我有一个文件,逐行读取文件并从字符串行中提取特定对象。

例如字符串行有两种格式。

VA001748714600006640126132202STRONG 4P 4X44G000099

VA 00174 871460000664 012 6132202 STRONG 4P 4X44G 000099

现在我需要提取字符串并存储到我的表和字段中,例如下面和上面的两行数据在下面的字段中生成(Desire Results)。

 Code  Location    SerialNo     Quantity  ItemNo      Description      Price
VA 00174 871460000664 12 6132202 STRONG 4P 4X44G0 000099

我试过的。我创建了一种返回 object[] extract from string

的方法
public static object[] ProcessLine(string line)
{
var obj = new object[7];
var str = line.Replace("\0", "").Replace(" ", "");
string code = str.Substring(0, 2)?.Trim();
string location = str.Substring(2, 5)?.Trim();
string serialNo = str.Substring(7, 12)?.Trim();
string quantity = str.Substring(19, 3)?.Trim();
int qty = 0;
if (!string.IsNullOrEmpty(quantity))
{
qty = Convert.ToInt32(quantity);
}
string itemNo = str.Substring(22, 7)?.Trim();
Regex MyRegex = new Regex("[^a-z ]", RegexOptions.IgnoreCase);
string description = MyRegex.Replace(line.Substring(2), @"")?.Trim();
string price = str.Substring(str.Length - 6)?.Trim();
obj.SetValue(code, 0);
obj.SetValue(location, 1);
obj.SetValue(serialNo, 2);
obj.SetValue(qty, 3);
obj.SetValue(itemNo, 4);
obj.SetValue(description, 5);
obj.SetValue(price, 6);
return obj;
}

我已经找到子字符串并存储到对象中,但我也找不到描述,因为这个字段不是固定的字母。

(Code,Location,SerialNo,Quantity,ItemNo and Price) 是固定的字符数,(Description) 字段是任意字符或更改。

如何使用 regex 找到这个字段的值和描述我试图找到描述但它没有数字提取。

最佳答案

如果您真的想使用正则表达式,请参阅 Wiktor's answer .

但是,您不需要正则表达式来解决这个问题。

由于除description外的所有字段的长度都是已知的,因此可以计算出description字段的长度。根据您的规范,描述从位置 29 开始,然后是价格字段的 6 个位置。因此,这应该给你描述:

string description = str.Substring(29, str.Length-29-6);

关于c# - 从 C# 中的字符串行获取特定字段或字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52144529/

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