首页 > 解决方案 > 在 C# 中使用查找模式

问题描述

我有几个字符串,我希望它们被转换如下所示

在前两个例子"中是包含在输入字符串中的。但"并不总是与最后两个示例中所示的输入字符串一起提供。

基本上我需要第一次和最后一次出现之间的字符串|""|或字符串|

有人可以让我知道如何找到我需要的输出字符串的匹配项,它适用于所有这些字符串吗?我正在尝试用 C# 编写这些代码。

提前感谢您的帮助

标签: c#regex

解决方案


我会提出一个替代正则表达式。只需使用SubstringReplace

List<string> input = new List<string>
{
    "501000061|\"B084PD449Q|2088|1\"|",
    "504000585|\"B000NSIAG0|3115|0\"|",
    "508000036|B084S1FVH5|42|1|",
    "504000584|B000NSIAG0|3115|0|"
};

foreach (var element in input)
{
    string transformed = element.Substring(10, element.Length - 11)
                                .Replace("\"", string.Empty);
    Console.WriteLine(transformed);
}

输出:

B084PD449Q|2088|1
B000NSIAG0|3115|0
B084S1FVH5|42|1
B000NSIAG0|3115|0


推荐阅读