使用正则表达式阅读文本

时间:2010-06-17 08:39:40

标签: c# regex

我想使用正则表达式从下面的文本行中提取所有值:

  

(销售(类型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);
                }
            }
        }

是吗?但我不能得到价值

3 个答案:

答案 0 :(得分:2)

^\(Sales \(Type \d \d((?: \d+){7})\) "([^"]+)" "([^"]+)" "" "(\d+)" "(\d+)"

匹配样本字符串中的这些值

  • 匹配组1:' 0 0 000 0 0 0 0'(修剪内容并在空格上拆分以获取单个值)
  • 匹配组2:'Product'
  • 匹配组3:'ProductType'
  • 匹配组4:'0000'
  • 匹配组5:'0000'

您也可以将整个字符串拆分到空间并选择所需的部分,完全没有正则表达式。但是,正则表达式确保字符串看起来正确,而简单的拆分则不然。

答案 1 :(得分:1)

这可能很有用,输入您希望为其生成正则表达式的字符串,它将以所选语言生成RegEx。 http://txt2re.com/

利安

答案 2 :(得分:0)

也许你可以分开[( ";]+,即一个或多个括号,空格,引号或分号。