C# 带有带引号标识符的管道的正则表达式

C# 带有带引号标识符的管道的正则表达式,c#,regex,pipe,delimiter,quoted-identifier,C#,Regex,Pipe,Delimiter,Quoted Identifier,可能重复: 我有一个C#应用程序,它解析管道分隔的文件。它使用Regex.Split方法: Regex.Split(line, @"(?<!(?<!\\)*\\)\|") Regex.Split(line,@)(?下面是我拼凑的一个快速表达式,它似乎起到了作用: "([^"]+)"|([^\|]+) 虽然你的表达似乎也与“有关,因此你可能需要在这个表达中添加任何其他需要。我在回答中忽略了它们,因为问题中没有解释它们,因此我无法在不知道它们为什么存在的情况下提供解决方案-它们实际

可能重复:

我有一个C#应用程序,它解析管道分隔的文件。它使用Regex.Split方法:

Regex.Split(line, @"(?<!(?<!\\)*\\)\|")

Regex.Split(line,@)(?下面是我拼凑的一个快速表达式,它似乎起到了作用:

"([^"]+)"|([^\|]+)
虽然你的表达似乎也与“有关,因此你可能需要在这个表达中添加任何其他需要。我在回答中忽略了它们,因为问题中没有解释它们,因此我无法在不知道它们为什么存在的情况下提供解决方案-它们实际上可能根本不需要存在。

此外,我的表达式忽略了空字段(例如,1 | | 2 | 3将仅显示为1、2和3),我不知道这是否是您需要的,如果它不让我知道,我也可以将表达式更改为满足此要求的内容


希望这能有所帮助。

下面是一个快速表达,我用它表达的意思似乎很有用:

"([^"]+)"|([^\|]+)
虽然你的表达似乎也与“有关,因此你可能需要在这个表达中添加任何其他需要。我在回答中忽略了它们,因为问题中没有解释它们,因此我无法在不知道它们为什么存在的情况下提供解决方案-它们实际上可能根本不需要存在。

此外,我的表达式忽略了空字段(例如,1 | | 2 | 3将仅显示为1、2和3),我不知道这是否是您需要的,如果它不让我知道,我也可以将表达式更改为满足此要求的内容


希望这能有所帮助。

不要使用正则表达式来处理csv文件,存在用于此的csv解析器,请参阅,例如,不要使用正则表达式来处理csv文件,存在用于此的csv解析器,请参阅,例如,对于正则表达式,我显然一无所知。但以您的示例为例,并将其放入C#中,它将不会编译。下面是代码:string[]parts=regex.Split(行,@“([^“]+)”|([^\\\]+);抛出“常量换行符”错误。啊,您缺少一些斜杠(即使在包含引号的字符串前面使用@符号时也需要使用这些斜杠),并且您似乎缺少结束引号和括号。请尝试以下操作:string[]parts=Regex.Split(行,@“([^\]+)\”)\“([^\]+)+)\”);对于正则表达式,我显然一无所知。但以你的例子,并将其放入C语言中,它将无法编译。下面的代码是:string[]parts=Regex.Split(line,@“([^“]+)”)”([^\[124;]+);抛出“newline in constant”错误。啊,你缺少一些斜杠(即使在包含引号的字符串前面使用@符号,也需要使用斜杠)您似乎缺少结束引号和方括号。请尝试以下操作:string[]parts=Regex.Split(第行,@“([^\“]+)\”([^\]+)”;