如何使用正则表达式匹配仅包含以逗号分隔的数字的 CSV 文件中的特定 number/field?

How to match a particular number/field in CSV file consisting of only numbers separated by commas using regex?

我正在使用 BBEdit 12.6 以不同颜色突出显示某些数字;为了提高可读性,在这方面,

请帮忙提供一个匹配 no 的正则表达式。 80 / 42 / 55(第 8 个字段)在下面的示例文件中。

    10,20,30,40,50,60,70,80,90,100

    12,22,32,42,52,62,72,42,85,102

    15,25,35,45,55,65,75,55,65,105

因为这些都是数字,所以我使用了正则表达式来匹配行尾的第三个数字。但是,它匹配所有最后三个数字字段,而不仅仅是一个。这不是 search/replace 操作,相反,此模式将在 .plist 文件中用于使用 CLM https://www.barebones.com/support/develop/clm.html

的颜色编码文件

我用过的表达式,但问题是,它匹配最后的 3 个数字字段,而不仅仅是一个。

(?x:(\d+,\d+)(?:,\d+$))

正确的正则表达式应该只匹配第 8 个字段。

您可以匹配 1+ 个数字,后跟两次出现的逗号和 1+ 个数字在 line/string:

的末尾
\d+(?=(?:,\d+){2}$)

参见regex demo and the regex graph

详情

  • \d+ - 1+ 位数
  • (?=(?:,\d+){2}$) - 匹配一个位置的正前瞻 ((?=...)) 紧接着两次出现 ((?:...){2}) , 和 1+ 位 (,\d+) 在字符串的末尾 ($).