【发布时间】:2026-01-24 21:15:01
【问题描述】:
有人知道一个可重复的 RegEx 模式来捕获逗号分隔列表之间的单词吗?
例如:
City,State,Latitude,Longitude
// $1,$2,$3,$4
这是用于 IDE 中的查找和替换,因此大多数编程语言提供的 .split 方法不是解决方案。也请不要前瞻/环顾四周,这些都不是普遍支持的。
说明: (1) 只需要在一行中捕获逗号分隔的单词 - 而不是跨多行,(2) 示例的解决方案就足够了。
【问题讨论】:
-
您还没有接受任何解决方案,他们没有按预期工作吗?如果不是,那么真正的问题是什么?请注意,目前尚不清楚您遇到了什么问题,只是一些要求不明确的任务。请编辑问题并添加详细信息:预计有多少字段,如果它们的数量是固定的,字段是否可以跨行,是否还有其他我们不知道的警告。 “最佳”一词只能用于我们知道其要求的解决方案。只是“给我最好的正则表达式”不是必需的。
-
@WiktorStribiżew - 要求是提供一个可重复的正则表达式模式,可以捕获 N 个逗号分隔的标记,这比我提供的解决方案更好(目前是最佳答案)。另外,您对“最佳”这个词的理解太多了……只是说“这是我目前最好的解决方案”。
-
@WJS - “为什么是正则表达式?” - 如问题“这是用于在 IDE 中查找和替换”(接受 RegEx 模式)中所述
-
如果你想留在一行并在 VSCode 或 VS 中工作,你可以使用你的模式,你的问题是题外话,因为没有代码在这里不工作。如果您使用 NPP 或 SublimeText,在非常特殊的情况下,您的模式可能会跨越多行,您只需将
\n添加到每个字符类中。如果可能少于四个字段,则应使用可选的非捕获组。 -
@WiktorStribiżew - “如果可能少于四个字段,您应该使用可选的非捕获组” - 可能需要捕获单词以替换为句子 - 例如
This $1 is in $2 with coordinates of $3 and $4。无论字数如何,都需要捕获。
标签: regex