4

我有以下模式的文本:

1 NAME word1 word2 wordn /words/
...
...
1 NAME word1 word2 wordn /words/

我需要一个正则表达式,将其重新排序为:

1 NAME /words/ word1 word2 wordn
...
...
1 NAME /words/ word1 word2 wordn

我正在尝试这样做,notepad++但无法找出正则表达式来匹配n个单词,直到字符/

请帮忙!

4

3 回答 3

7

寻找: ([^ ]+) ([^/]+)/([^/]+)/

  • ([^ ]+)将“名称”作为除空格以外的任何内容匹配到组中\1(后跟空格)
  • ([^/]+)将“所有单词”匹配为任何内容,直到第一个/进入组\2
  • /([^/]+)/匹配组之间//组中的任何内容\3

用。。。来代替: /\3/ \2\1

于 2012-10-01T22:22:05.360 回答
1

尝试

(?<=1 NAME )(\S+ ){n}/words/
于 2012-10-01T21:25:42.333 回答
1

你可以在 MS Word 中做到这一点(我认为在 Visual Studio 中也是如此)。这是在MS Word中的完成方式

Match String: (<*>) (<*>) (<*>) (<*>) (<*>) (<*>)
Replace String: \1 \2 \6 \3 \4 \5

在 MSWord 中,它并没有具体说明正则表达式,但它可能会在后端使用它。请注意,它有匹配 \word\ 的问题,即以反斜杠 () 开头的单词。您可能想从单词中删除反斜杠以确保它有效。

于 2012-10-02T12:36:53.987 回答