regex 仅保留数字行中带有逗号分隔符的数字

41ik7eoe  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(98)

我有一些价值观如下:

630,465
theGlobe
504,685
OpenDiary
Open
Diary
17,738
JUNE
1998
/////////////////////////
Bolt
bolt3,270,300
Classmates
1,509,260

字符串
现在我想删除数字行中的多余内容。
例如,我想从bolt3,270,300中删除bolt

我尝试使用以下正则表达式:
查找内容:
^.?(\B\d{1,3}(?):,\d{3})\B). *
替换为:
1美元
但此正则表达式从bolt3,270,300中删除了
bolt3**
我也尝试过使用正则表达式:
查找内容:
^.?(\d{1,3}(,\d{3})).
替换为:
1美元
但此正则表达式从1998中删除了
*8**

如何解决此问题?

xxe27gdn

xxe27gdn1#

您可以使用

^.*?(?<!\d)(?<!\d,)(\d{1,3}(?:,\d{3})*)(?!,?\d).*

字符串
参见regex demo

  • 详细信息 *:
  • ^-行的开始
  • .*?-除换行符字符以外的任何零个或多个字符尽可能少
  • (?<!\d)-左边不允许有数字
  • (?<!\d,)-左边不允许有数字和逗号
  • (\d{1,3}(?:,\d{3})*)-第1组($1):一位、两位或三位数字,以及出现零次或多次的逗号+三位数字
  • (?!,?\d)-右边不允许有数字或逗号+数字
  • .*-任何零个或多个字符,尽可能多的换行符字符。

相关问题