Notepad ++用连字符替换数字之间的空格

时间:2014-09-02 16:11:46

标签: regex notepad++

我有一个包含用于施工计费的CSI代码的文件。它们采用以下格式:

00 01 01 Project Title Page
00 01 05 Certifications Page
00 01 07 Seals Page
00 01 10 Table of Contents
00 01 15 List of Drawing Sheets
00 01 20 List of Schedules

我们正在改变雇员为某些出价文件命名的方式,我需要让这个列表具有以下格式:

00-01-01 Project Title Page
00-01-05 Certifications Page
00-01-07 Seals Page
00-01-10 Table of Contents
00-01-15 List of Drawing Sheets
00-01-20 List of Schedules

我是正则表达式的新手,我似乎无法使替换部件正常工作。要搜索文件,我使用的是非常简单的[0-9] [0-9]。这突出了我有兴趣改变的每个部分。但是,无论我使用什么替换标准,我都用连字符替换整个搜索语句。为了记录我使用Notepad ++,我确实设置为使用正则表达式。我已经在其他文章中尝试了许多替换字符串,这些文章具有相似的标准而没有成功。感谢您在这件事上的时间和考虑。

4 个答案:

答案 0 :(得分:2)

搜索:(\d)\s+(\d)
替换为:$1-$2

  • (\d)将是数字,保存到捕获组
  • \s+将是数字之间的任何空格
  • 在替换中,我们保留捕获组$1$2(数字),但在它们之间加一个连字符,而不是之前的空格。

这将涵盖我在“用连字符替换数字之间的空格”中可以看到的任何情况。

如果您只想要将3个数字全部用空格分隔的特定方案,则可以将搜索更改为(\d+)\s+(\d+)\s+(\d+),将替换为$1-$2-$3

如果您只想要常规空格而没有标签或其他内容,则可以用简单的空格替换\s

答案 1 :(得分:1)

您不需要任何捕获组。

<强>正则表达式:

(?<=\d) (?=\d)

替换字符串:

-

DEMO

答案 2 :(得分:1)

Notepad ++内置功能

无需使用正则表达式,您可以使用Notepad ++内置功能来执行此操作。

你必须去编辑 - &gt; 列模式

enter image description here

enter image description here

enter image description here

使用正则表达式查找/替换

如果您仍想使用正则表达式。然后你可以做这样的事情:

enter image description here

您可以搜索:^(\d\d)\s(\d\d)\s

并替换为:\1-\2-

答案 3 :(得分:0)

  1. CTRL + F(在Windows中)
  2. 替换
  3. 正则表达式☑
  4. 搜索^(\d+) (\d+) (\d+),替换\1-\2-\3

    • ^是该行的开头(因此它不会意外地匹配文本中的任何内容)
    • ()正在捕获组的开头和结尾
    • \d+是多位数
    • 普通空格不需要任何特殊符号(如果它们是不同的空格字符,则可以使用\s代替
    • \1\2\3是捕获组的实际匹配

    只有2个捕获组,您必须点击两次替换所有按钮,并从头开始忽略^

  5. 全部替换