Regex 记事本++;正则表达式群

Regex 记事本++;正则表达式群,regex,notepad++,Regex,Notepad++,我在记事本上有以下几行++ '23123 123123 '23123 123123 '23123 123123 '23123 123123 '23123 123123 我想用 '23123' 123123 '23123' 123123 '23123' 123123 '23123' 123123 我正在做以下工作 查找内容:(\d)\s 替换为:$0' 但是它不起作用您的正则表达式不起作用,因为(\d)\s匹配并捕获一个数字,然后匹配任何垂直或水平空白,包括换行符。替换为整个匹配项和一个“字符

我在记事本上有以下几行++

'23123 123123
'23123 123123
'23123 123123
'23123 123123
'23123 123123
我想用

'23123' 123123
'23123' 123123
'23123' 123123
'23123' 123123
我正在做以下工作

查找内容:
(\d)\s

替换为
$0'


但是它不起作用

您的正则表达式不起作用,因为
(\d)\s
匹配并捕获一个数字,然后匹配任何垂直或水平空白,包括换行符。替换为整个匹配项和一个
字符。因此,可以将
附加到影响第二列末尾的数字块的任何数字+空格序列

要将
添加到您可以使用的行开头的数字块中

^'\d+
并替换为
$0'

详细信息

  • ^
    -线锚的开始
  • -单引号
  • \d+
    -1个或多个数字
替换的是整个匹配值(
$0
)和一个
'
(基本上,我们将
'
附加到每个匹配中)

另一种方法是在数字和水平空白之间插入

(\d)(\h)
并替换为
$1'$2
。它会将
附加到一行中的所有非最终数字块:

详细信息

  • (\d)
    -捕获组1(稍后用
    $1
    占位符引用):一个数字
  • (\h)
    -捕获组2(稍后用
    $2
    占位符引用):一个水平空白

如果您将正则表达式全部转换为并替换为
“$0

请注意,在这种情况下,您不需要捕获组,
\s\d
也可以工作

如果必须有一个或多个数字,示例数据的另一种方法是匹配一个或多个水平空格
\h+
,后跟一个或多个数字
\d+
,并替换为
'
和整个匹配
$0

查找内容

替换为


“$0

作为正则表达式的替代方案,在这种情况下,记事本++允许列选择。单击第一行中的列,然后按ALT-SHIFT-DOWN箭头,直到到达最下面一行。光标将扩展:


然后键入
,它将在所有行中键入。

请尝试我的解决方案,如下所示

搜索:
'\d+

替换:
$0'


请检查我的答案中的两个解决方案,请让我知道哪一个最适合您的场景。描述它如何不起作用将有助于回答您的问题。很高兴我的答案对您有效。请考虑所有对你有帮助的答案。FY:这个解决方案只在第一列中的数字个数是恒定的时候有效。它也是“手动”的,您不能使用它一次处理多个文件,也不能帮助“一次”自动处理多个列值。@WiktorStribiżew让我强调一下备选方案,在这种情况下。我理解,我只是认为,如果问题这么简单,OP就不会走正则表达式的路。@WiktorStribiżew这些答案不仅仅适用于OP。列选择很有用,而且并不总是广为人知。你已经提供了答案。如果相关的话,这只是一个选择。马克,我完全同意。这就是为什么我添加了我的顶部评论,以便所有未来的访问者都能知道解决方案的局限性。这不是对你的评论。它与上面有什么不同?而且,没有解释的回答完全是无用的。