Notepad++ 在字符周围交换文本

Notepad++ 在字符周围交换文本,notepad++,text-editor,Notepad++,Text Editor,我的文本行采用相同的格式: 标题1:Text1 标题2:Text2 如何将:两侧的文本交换到另一侧?比如: Text1:标题1 文本2:标题2 我可以编写一个小脚本来实现这一点,但我想知道是否有一种更快的方法可以使用正则表达式、内置功能或任何其他魔法来实现这一点?步骤1:按住键盘上的Alt按钮并突出显示第三列,即Text1。这将选择整个3列 步骤2:右键单击并选择“剪切”,然后粘贴到第一列的前面 第3步:按住键盘上的Alt键并突出显示“:”列 步骤4:右键单击并选择“剪切”,然后粘贴到第一列和第

我的文本行采用相同的格式:

标题1:Text1
标题2:Text2

如何将
两侧的文本交换到另一侧?比如:

Text1:标题1
文本2:标题2


我可以编写一个小脚本来实现这一点,但我想知道是否有一种更快的方法可以使用正则表达式、内置功能或任何其他魔法来实现这一点?

步骤1:按住键盘上的Alt按钮并突出显示第三列,即Text1。这将选择整个3列

步骤2:右键单击并选择“剪切”,然后粘贴到第一列的前面

第3步:按住键盘上的Alt键并突出显示“:”列

步骤4:右键单击并选择“剪切”,然后粘贴到第一列和第二列之间。

您可以使用

^([^\r\n:]+)(:\h*)(.*)$

替换为
$3$2$1
,其中
$n
是对捕获组捕获的值的反向引用。这些组将按照它们在图案中出现的顺序自动编号

详细信息

  • ^
    -行首
  • ([^\r\n:]+)
    -组1稍后被称为
    $1
    捕获除CR、LF和冒号以外的一个或多个字符
  • (:\h*)
    -第2组捕获一个冒号和零个或多个水平空白
  • ([^:\r\n]+)
    -第3组稍后被引用为
    $3
    。见上文
  • $
    -行结束

是否有要处理的前导/尾随空格?如果是,请使用
^(\h*\w+)(\h*:\h*)(\w+\h*)$
->
$3$2$1
正则表达式替换。@WiktorStribiżew,找不到任何文本。让我给你更多关于线路的细节。它们都是以下格式:
主页(主页):http://www.example.com/
Aha,那是另一壶鱼。使用
^([^\r\n:]+)(:\h*)(.*)$
并使用相同的替换。或者
^([^\r\n:]+)(:\h*)([^:\r\n]+)$
Woow就是这样做的!!。你能解释一下
$3$2$1
部分吗?@WiktorStribiżew,请写下来作为答案,这样我就可以接受了。没有列。这些是行中的文本。如果没有列,它应该仍然有效。您是否尝试过按住alt按钮并突出显示“:”后面的文本?我知道您正在尝试做什么。这些线的长度不同,所以我不能这样选择。
^([^\r\n:]+)(:\h*)([^:\r\n]+)$