【问题标题】:Switch word postions in Notepad ++在记事本++中切换单词位置
【发布时间】:2017-01-06 12:04:59
【问题描述】:

我的文字是这样的:

Text1 | Text2 | Text3 | Text4 | Text5 | Text6 | Text7 

我想像这样更改文本位置

Text1 | Text4 | Text5 | Text6 | Text2| Text3 | Text7 

如果可以删除文本 4、5、6 之间的|,使其看起来像

Text1 | Text4 Text5 Text6 | Text2 | Text3 | Text7

如果不可能,如果第一个问题解决了,我会很高兴。

【问题讨论】:

  • 规则是什么?您如何定义要匹配/移动的内容?
  • 阅读文本我要更改文本 4 5 6 2 3 位置在每个测试之间有一个 |
  • 太好了,那是什么阻碍了你?
  • 我需要在像这样的 100 行之类的每一行上都这样做,所以我想要一种快速的方法来更改它,如果有任何不去手动进行的话,因为这将花费我很长时间跨度>
  • 您可以使用^([^|]*\|)((?:[^|]*\|){2})((?:[^|]*\|){3}) 替换为$1$3$2

标签: text replace position notepad++ word


【解决方案1】:

你可以使用

^([^|]*\|)((?:[^|]*\|){2})((?:[^|]*\|){3})

并替换为$1$3$2。

详情:

  • ^ - 行首
  • ([^|]*\|) - 第 1 组 ($1) 捕获除 | 之外的零个或多个字符,然后是文字 |
  • ((?:[^|]*\|){2}) - 第 2 组 ($2) 捕获与第 1 组中相同模式的 2 个序列
  • ((?:[^|]*\|){3}) - 第 3 组 ($3) 捕获与第 1 组中相同模式的 2 个序列

顺序随着替换模式中反向引用的顺序而改变。

要删除第 2、3 和第 4 个|,请使用类似的表达式:

查找内容:^([^|]*\|)([^|]*)\|([^|]*)\|([^|]*)
替换为:$1$2$3$4

基本上,您只需在替换模式中操纵捕获组边界和反向引用的顺序,仅此而已。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 2021-11-22
    • 1970-01-01
    • 2013-10-13
    • 2013-03-06
    • 2016-07-01
    相关资源
    最近更新 更多