Regex 我可以使用什么正则表达式来查找Nᵗʰ;以逗号分隔的列表中的条目?

Regex 我可以使用什么正则表达式来查找Nᵗʰ;以逗号分隔的列表中的条目?,regex,parsing,split,comma,Regex,Parsing,Split,Comma,我需要一个正则表达式,可以用来查找逗号分隔列表中的第n个条目 例如,假设此列表如下所示: abc,def,4322,mail@mailinator.com,3321,alpha-beta,43 …我想找到第7个条目(alpha-beta)的值。您可以使用以下内容: ([^,]*,){$m}([^,]*), 作为一个起点。(将$m替换为(n-1)的值。)内容将位于捕获组2中。这不会处理大小为n的列表之类的事情,但这只是根据您的情况进行适当修改的问题。我的第一个想法不是使用正则表达式,而是使用某

我需要一个正则表达式,可以用来查找逗号分隔列表中的第n个条目

例如,假设此列表如下所示:

abc,def,4322,mail@mailinator.com,3321,alpha-beta,43

…我想找到第7个条目(
alpha-beta
)的值。

您可以使用以下内容:

([^,]*,){$m}([^,]*),

作为一个起点。(将$m替换为(n-1)的值。)内容将位于捕获组2中。这不会处理大小为n的列表之类的事情,但这只是根据您的情况进行适当修改的问题。

我的第一个想法不是使用正则表达式,而是使用某种方法将字符串拆分为逗号上的数组,但因为您要求使用正则表达式

大多数正则表达式允许您指定最小或最大匹配,因此类似的东西可能会起作用

/(?:[^\,]*\,){6}([^,]*)/

这是为了匹配任意数量的非逗号字符,后跟逗号六次。
(?:[^,]*,){6}
?:
表示不捕获,然后匹配并捕获任意数量的非逗号字符。
([^,]+)
。您想使用第一个捕获组

如果你需要更多信息,请告诉我

编辑:我编辑了上面的内容,以不捕获字符串的第一部分。这个正则表达式在C#和Ruby中工作

或者只是

$it = (split /,/ => $string)[6];

比每次编写一个模式时都包含
{6}
要好。

必须使用正则表达式吗?一个
str.split(“,”[N-1]
@Amarghosh他可能没有使用python,你不想用一个直接的正则表达式。您希望拆分它,或者更好的方法是使用CSV解析模块,然后从结果列表中取出所需的元素。请注意,“逗号分隔”和“逗号分隔”(就此而言,“逗号终止”)是不同的。您的数据只是逗号分隔的,而不是逗号分隔的。此外,忽略指定您希望使用的编程语言或程序/应用程序/工具/实用程序也几乎是无用的,因为正则表达式方言差异很大,而且微妙。不幸的是,我使用的是软件包,而不是编程语言,因此我无法访问任何“拆分”类型构造-包只允许我提供regexp。它在Hadoop集群中计算regexp,因此我假设它是由Java regexp处理程序计算的。我相信这在Java中也可以工作,尽管您可能需要使用group属性,并且它将是组数组中的第二个元素。
$it = (split /,/ => $string)[6];