简单的文本捕获和RegEx替换

时间:2016-07-16 18:49:53

标签: regex replace regex-group

您好我希望根据分隔符对文本序列中的单个行中的单词重新排序。我正在使用http://www.regexr.com/进行查找和替换。具体来说,我想做一些像

这样的事情
(capture1) >> (capture2)

成像:

(capture2) >> (capture1)

在regexr上我做了类似的事情:

/^.*(\w+)>>.*(\w+)$\gm

但这与文字不匹配。

我希望知道要替换的模式。我正在尝试

\2 -> \1

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以使用

/^\s*(.*?)\s*>>\s*(.*?)\s*$/gm

并替换为$2$1

请参阅regex demo

模式详情

  • ^ - 行首(因为/m修饰符使^匹配行开头)
  • \s* - 零个或多个空格
  • (.*?) - 第1组匹配0+除换行之外的任何字符尽可能少到第一个字符....
  • \s* - 之前零个或多个空格......
  • >> - 文字>>序列
  • \s* - 0+ whitespaces
  • (.*?) - 第2组匹配第一行的其余部分......
  • \s* - 之前零个或多个空格......
  • $ - 行尾(由于/m $与行结尾匹配)。

$1$2是对使用模式中定义的捕获组捕获的子匹配的反向引用。

答案 1 :(得分:0)

你可以试试这个:

/^\s*(\w+)\s*>>\s*(\w+)\s*$/

我认为你的正则表达式问题是在第一个捕获组之后没有空间允许