首页 > 解决方案 > 如何创建一个仅在数字中而不是在字符串中查找逗号的正则表达式?

问题描述

注意:我正在使用 Swift 5 (iOS) 来尝试执行此操作。

假设我有以下字符串:

This item, known as x, can be found in 1:1,234 boxes. There are 10,000, and not less, produced.

我想要一个检测1,234and中的逗号10,000但忽略其他逗号的正则表达式。我有这个正则表达式可以找到带逗号的完整数字,但我希望只显示逗号本身。

([^\d]|^)\d{1,2},\d{3}([^\d]|$)

我对正则表达式很糟糕。谁能给我一些关于如何做到这一点的指示?

最终,RegEx 似乎需要检测前面的 3 个数字、一个逗号,然后是后面的 1+ 个数字。

标签: iosswiftregex

解决方案


根据评论中用户@41686d6564 的评论(谢谢!),这是我如何完成我需要使用 Swift 5 完成的工作:

desc = desc.replacingOccurrences(of: #"(?<=\d),(?=\d{3}(?:,\d{3})*(?!\d))"#, 
                                 with: "", 
                                 options: .regularExpression, 
                                 range: nil)

推荐阅读