C# 从字符串中的行中排除CRLF的正则表达式

C# 从字符串中的行中排除CRLF的正则表达式,c#,regex,C#,Regex,我有一个正则表达式,它将提取数据并放入三个不同的组:begin、CustomerNo和end ^(?<begin>(.*?[|]){14})(?<CustomerNo>.*?)(?<end>[|].*)*$ ^(?(*?[|]){14})(?*??([|].)*$ 这是有效的,除了“end”组将在末尾包含CrLf字符。有没有一种方法可以不在上面的正则表达式的每行末尾包含CrLf字符 试试这个: @"^(?<begin>(.*?[|]){14})

我有一个正则表达式,它将提取数据并放入三个不同的组:begin、CustomerNo和end

^(?<begin>(.*?[|]){14})(?<CustomerNo>.*?)(?<end>[|].*)*$
^(?(*?[|]){14})(?*??([|].)*$
这是有效的,除了“end”组将在末尾包含CrLf字符。有没有一种方法可以不在上面的正则表达式的每行末尾包含CrLf字符

试试这个:

@"^(?<begin>(.*?[|]){14})(?<CustomerNo>.*?)(?<end>[|][^\r\n]*)"
@“^(?(*?[|]){14})(?*?([|][^\r\n]*)”

是否使用任何修改器?你用什么语言?重复capuring组有点奇怪。我用的是c#;但是,任务不是使用c#删除任何CrLf。在我的工作中,我可以修改代码以删除CrLf,但由于审查和其他限制,有时需要部署到生产环境中。因此,使用正则表达式排除CrLf char将是现在的快速解决方案。但是,我不知道如何排除它。字符串是逐行处理的(换句话说:您使用多行模式吗?)RegexOptions设置为multiline。这很有效,谢谢。我以前试过这个,但是我犯了一个错误,我用了:“^(?(.*?[|]){14})(?*??([|]^[\r\n]*)”@Andy:试试看:
@(((>[^[|]*[|]){14})(?[^.]*)(?[|][\r\n]*)”
如果它有效,它将是一个更快的模式。