【问题标题】:insert a comma(',') between a list of numbers (each on new line) retaining new lines as well在保留新行的数字列表(每个都在新行)之间插入逗号(',')
【发布时间】:2021-06-28 09:28:59
【问题描述】:

我有一段这样的文字

123
234
345
456
567
678
789
890

我想把它转换成这个

123
,234
,345
,456
,567
,678
,789
,890

如何在 sublime text 3 中使用正则表达式替换来实现这一点

我目前正在为每一行手动替换 '\n''\n,'

编辑: 我的完整文件是这样的

xyz

123
234
345
456
567
678
789
890

abc

【问题讨论】:

  • 你不能在Find 功能中使用Replace All 吗?查找 \n 并替换为 \n, 对我来说与您当前的示例数据效果很好。
  • 您只想要一段数字还是任意一行?搜索:^ 替换:, 应该可以在任何行的开头放置一个逗号。如果您不想格式化整个文件,也许您可​​以将替换限制为仅当前选择。
  • 你的意思是你只想在每行的开头插入一个逗号而不是第一行?你真的需要检查中间的线是否都是数字吗?实际上,您的输入文件是什么样的?
  • @WiktorStribiżew 我的输入文件看起来像xyz 123 234 345 456 567 678 789 890 xyz
  • @WiktorStribiżew 是的

标签: regex sublimetext3


【解决方案1】:

你可以使用

^(?!\A)
  • ^行首
  • (?!\A) 负前瞻,断言不是字符串的开头

并替换为,

Regex demo

【讨论】:

    【解决方案2】:

    你可以使用

    ^\d+\R\K(?=\d+$)
    

    替换为,。请参阅regex demo详情

    • ^ - 行首
    • \d+ - 一位或多位数字
    • \R - 换行序列
    • \K - 匹配重置运算符,丢弃目前匹配的文本
    • (?=\d+$) - 只包含一个或多个数字的行应紧跟在当前位置的右侧。

    【讨论】:

      猜你喜欢
      • 2020-01-31
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      相关资源
      最近更新 更多