正则表达式:在分号之间替换文本一定次数

时间:2016-04-12 13:42:10

标签: c# .net regex

我对正则表达式有点困惑,我有一条看起来像这样的行:

test = "article;vendor;qty;desc;price1;price2"

我想要做的只是获得price1。 我目前正在使用此功能:

Regex.Replace(test, @".*;[^;]*;", "");

允许我获得价格2,但我不知道如何隔离价格。

2 个答案:

答案 0 :(得分:1)

您是否考虑使用String.Split()调用来将当前的分号分隔字符串分解为数组:

delete

然后您可以通过索引简单地访问您的值:

data = 0x00123

如果存在可用于匹配的特定模式并准确选择您要查找的内容,则只需要使用正则表达式,但对于分隔列表,var input = "article;vendor;qty;desc;price1;price2"; var output = input.Split(';'); 方法通常会使事情变得更容易(特别是如果没有任何内容可以唯一标识您要从列表中提取的项目。)

答案 1 :(得分:0)

使用以下正则表达式:

(?:[^;]*;){4}([^;]*);

并替换第一个匹配组。