【问题标题】:RegEx in Notepad++ w/Find and replace带查找和替换功能的 Notepad++ 中的正则表达式
【发布时间】:2017-10-08 06:35:18
【问题描述】:

我的数据如下所示:

1  ,11/10/2015, 1    3
2  ,01/15/2013
3  ,04/10/2015, 5      5
4  ,04/01/2013, 165
5  ,07/01/2016, 311   312

我需要找到每个看起来像第 1、3 和 5 行的实例,并用逗号替换两组数字之间的空格,使它们变成:

1  ,11/10/2015, 1,3
2  ,01/15/2013
3  ,04/10/2015, 5,5
4  ,04/01/2013, 165
5  ,07/01/2016, 311,312

我很接近这个:

[^(^\d{1,3})][[^(\d{1,3})]\s+(\d{1,3})\r

,但它保留了 2 组数字和空格。需要将查找结果隔离到两组数字之间的空白处。前导数字 (1-5) 不在我的数据集中。只是为了便于阅读而在此处包含这些内容。

【问题讨论】:

  • 如果这是您的输入,也许将 \b +\b 替换为 , 就足够了。

标签: regex replace find notepad++


【解决方案1】:

如果每行只有一个空格分隔的数字对,您可以使用

(\d+)\h+(\d+)

并替换为$1,$2

如果您需要定义更多上下文并使正则表达式替换更安全,请考虑

,\h*\K(\d+)\h+(\d+)$

详情

  • , - 逗号
  • \h* - 0+ 个水平空格
  • \K - 忽略目前匹配的所有文本
  • (\d+) - 第 1 组:一位或多位数字
  • \h+ - 1+ 个水平空格
  • (\d+) - 第 2 组:一位或多位数字
  • $ - 行尾。

【讨论】:

  • (\d+)\h+(\d+) 似乎做到了。谢谢!
  • 我刚刚发现要求每个看起来像第 1、3 和 5 行的实例有点模糊,所以我建议的初始正则表达式有点限制。很高兴简化版也可以。我在答案中交换了解决方案。
猜你喜欢
  • 2017-01-28
  • 2015-01-11
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
相关资源
最近更新 更多