交换字符周围的文本

Swap text around a character

我有几行遵循相同格式的文本:

Title1 : Text1 Title2 : Text2

如何将:两边的文字换到另一边?喜欢:

Text1 : Title1 Text2 : Title2

我可以编写一个小脚本来执行此操作,但我想知道是否有更快的方法使用 Regex、内置功能或任何其他魔术来执行此操作?

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

第 2 步:右键单击并选择 'Cut',然后粘贴到第一列前面。

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

第 4 步:右键单击并选择 'Cut',然后粘贴到第 1 列和第 2 列之间。

您可以使用

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

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

替换为 </code>,其中 <code>$n 是对捕获组捕获的值的反向引用。组会按照它们在模式中出现的顺序自动编号。

详情:

  • ^ - 行首
  • ([^\r\n:]+) - 第 1 组后来被称为 </code> 捕获除 CR、LF 和冒号 </li> 之外的一个或多个字符 <li><code>(:\h*) - 第 2 组捕获冒号和零个或多个水平空格
  • ([^:\r\n]+) - 第 3 组以后称为 </code>。见上文。</li> <li><code>$ - 行尾。