我想使用正则表达式从下面的文本行中提取所有值:
(销售(类型0 0 0 0 000 0 0 0 0 )“产品”“ ProductType ”“”“ 0000 “” 0000 “);; ProductName 000
如何为此编写正则表达式?我正在使用C#。
使用以下代码阅读文本文件
string expr = @"^\(Sales \(Type \d \d((?: \d+){7})\) "([^"]+)" "([^"]+)" "" "(\d+)" "(\d+)"
“;
正则表达式正则表达式=新的正则表达式(expr);
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);
}
}
}
是吗?但我不能得到价值
答案 0 :(得分:2)
^\(Sales \(Type \d \d((?: \d+){7})\) "([^"]+)" "([^"]+)" "" "(\d+)" "(\d+)"
匹配样本字符串中的这些值
' 0 0 000 0 0 0 0'
(修剪内容并在空格上拆分以获取单个值)'Product'
'ProductType'
'0000'
'0000'
您也可以将整个字符串拆分到空间并选择所需的部分,完全没有正则表达式。但是,正则表达式确保字符串看起来正确,而简单的拆分则不然。
答案 1 :(得分:1)
这可能很有用,输入您希望为其生成正则表达式的字符串,它将以所选语言生成RegEx。 http://txt2re.com/
利安
答案 2 :(得分:0)
也许你可以分开[( ";]+
,即一个或多个括号,空格,引号或分号。