Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用正则表达式阅读文本_C#_Regex - Fatal编程技术网

C# 使用正则表达式阅读文本

C# 使用正则表达式阅读文本,c#,regex,C#,Regex,我想使用正则表达式从下面的文本行中提取所有值: (销售(类型0.00.0000)“产品”产品类型“0000”;;产品名称000 如何为此编写正则表达式?我在用C# 我使用以下代码读取文本文件 string expr = @"^\(Sales \(Type \d \d((?: \d+){7})\) "([^"]+)" "([^"]+)" "" "(\d+)" "(\d+)" “; 正则表达式正则表达式=新正则表达式(expr) 是吗?但是我不能得到值。也许你可以在[(“;])+上拆分,也就是说

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

(销售(类型0.00.0000)“产品产品类型0000”;;产品名称000

如何为此编写正则表达式?我在用C#

我使用以下代码读取文本文件

 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'
你也可以在不使用正则表达式的情况下,在空格中分割整个字符串并选择你想要的部分。但是,正则表达式可以确保字符串看起来正确,而简单的分割则不行

^\(销售\(键入\d\d((?:\d+{7})\)“([^“]+)”([^“]+)”“([^“]+)”“(\d+)”(\d+)” 匹配示例字符串中的这些值

  • 匹配组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+)"