正则表达式解释:

正则表达式解释:

我正在努力解决 Notepad++ 中的这个问题。我非常希望得到一个好的答案。

假设我有这一行:

watermelon:strawberries

我想要得到这个:

strawberries:watermelon

如何对 Notepad++ 中的所有行执行此操作?我尝试了不同类型的方法,但无法获得此结果。

答案1

假设您有some string,后跟一个,:后跟一个some string,并且您想要两个字符串交换位置,则可以使用 RegEx 搜索和替换来使它们改变位置。

打开搜索和替换对话框 ( CTRL+ H)

在查找内容中:输入(.+):(.+)

在替换为:中输入\2:\1

在搜索模式的底部,将其更改为正则表达式。

命中Replace All则全部交换。

如果这不能给您带来所需的结果,请编辑您的问题并更好地说明您想要什么。现在它的解释有点开放,所以我假设整行中某处有一个 : 并且它会交换内容。可以有多个带有空格等的单词,并且所有单词都会与其交换。


正则表达式解释:

(...)是一组。每当您在正则表达式中添加一个组时,在替换中,您可以按输入顺序使用 \1、\2、\3 检索找到的内容。
.是:查找任何字符。
+是:前一次或多次。

所以(.+)意味着,创建一个我们可以找到的组,并在这个组中查找任意字符一次或多次。

:是:此字符没有意义,因此将其作为文字进行搜索:
再次(.+)如上所述。

通俗地说,我们找到任何东西,直到找到一个:,并将其放入一个组中,剩下的东西,我们放入另一个组中。这些分别是组 1 和组 2。

在我们的替换中,我们通过首先引用组 2 然后引用组 1 来交换组的位置,然后我们添加来:再次分隔组。

答案2

  1. 按 CTRL-H 执行搜索/替换功能。
  2. 激活“正则表达式模式”(alt-g 或左下角的单选按钮)
  3. 在“查找内容”输入中输入以下正则表达式查找模式:(.*):(.*)
  4. 在“替换为”输入中输入以下正则表达式替换模式:$2:$1
  5. 使用右上角的按钮循环查找找到的结果或使用“全部替换”一次性替换所有结果。

几点说明:

相关内容