C# 使用正则表达式阅读文本
我想使用正则表达式从下面的文本行中提取所有值: (销售(类型0.00.0000)“产品”产品类型“0000”;;产品名称000 如何为此编写正则表达式?我在用C# 我使用以下代码读取文本文件C# 使用正则表达式阅读文本,c#,regex,C#,Regex,我想使用正则表达式从下面的文本行中提取所有值: (销售(类型0.00.0000)“产品”产品类型“0000”;;产品名称000 如何为此编写正则表达式?我在用C# 我使用以下代码读取文本文件 string expr = @"^\(Sales \(Type \d \d((?: \d+){7})\) "([^"]+)" "([^"]+)" "" "(\d+)" "(\d+)" “; 正则表达式正则表达式=新正则表达式(expr) 是吗?但是我不能得到值。也许你可以在[(“;])+上拆分,也就是说
string expr = @"^\(Sales \(Type \d \d((?: \d+){7})\) "([^"]+)" "([^"]+)" "" "(\d+)" "(\d+)"
“;正则表达式正则表达式=新正则表达式(expr)
是吗?但是我不能得到值。也许你可以在
[(“;])+
上拆分,也就是说,一个或多个括号、空格、引号或分号。也许你可以在[(“;]+
,即一个或多个括号、空格、引号或分号。这可能很有用,输入要为其生成正则表达式的字符串,它将以所选语言生成正则表达式。
Liam这可能很有用,输入要为其生成正则表达式的字符串,它将以所选语言生成正则表达式。 利亚姆 ^\(销售\(键入\d\d((?:\d+{7})\)“([^“]+)”([^“]+)”“([^“]+)”“(\d+)”(\d+)” 匹配示例字符串中的这些值
- 匹配组1:
(修剪内容并按空格分割以获得单个值)“0 0 000 0 0 0”
- 匹配组2:
“产品”
- 匹配组3:
“产品类型”
- 匹配组4:
'0000'
- 匹配组5:
'0000'
- 匹配组1:
(修剪内容并按空格分割以获得单个值)“0 0 000 0 0 0”
- 匹配组2:
“产品”
- 匹配组3:
“产品类型”
- 匹配组4:
'0000'
- 匹配组5:
'0000'
您也可以在不使用正则表达式的情况下,在空格中拆分整个字符串并选择所需的部分。但是,正则表达式确保字符串看起来正确,而简单拆分则不正确。请准确列出您要提取的所有“值”。从最后7个值中选择“值”以及“产品”和“产品类型”以及“0000”和“0000”“不。在你的问题中,做一个精确的列表。哦,通过在字符串或其他东西中添加下划线来突出显示它们。其他一切都是模糊的。Tomalak我在我想要作为字符串获得的值中添加了**。也许你可以给我们一些输入和所需的输出?请准确地列出所有的“值”您希望从最后7个值以及“Product”和“ProductType”以及“0000”和“0000”中提取.in Type不。在你的问题中,做一个精确的列表。哦,通过在字符串或其他东西中添加下划线来突出它们。其他一切都是模糊的。Tomalak我在我想作为字符串获取的值中添加了**。也许你可以给我们一些输入和所需的输出?@deep:你使用
string.Split()
来分割你的值。@请看我更新的问题,我刚刚熟悉正则表达式,正在使用上面的代码阅读,但我无法获得值。?@deep:查看编号的匹配组。@deep:你使用String.split()
拆分您的值。@请看我更新的问题,我刚刚熟悉正则表达式,正在使用上述代码阅读,但我无法获取值。?@deep:查看编号的匹配组。
using (StreamReader r = new StreamReader(@"C:\records.log"))
{
while ((line = r.ReadLine()) != null)
{
foreach (Match m in regex.Matches(line))
{
string value = m.Value.Trim();
MessageBox.Show(value);
}
}
}
^\(Sales \(Type \d \d((?: \d+){7})\) "([^"]+)" "([^"]+)" "" "(\d+)" "(\d+)"