您好我希望根据分隔符对文本序列中的单个行中的单词重新排序。我正在使用http://www.regexr.com/进行查找和替换。具体来说,我想做一些像
这样的事情(capture1) >> (capture2)
成像:
(capture2) >> (capture1)
在regexr上我做了类似的事情:
/^.*(\w+)>>.*(\w+)$\gm
但这与文字不匹配。
我希望知道要替换的模式。我正在尝试
\2 -> \1
任何帮助都将不胜感激。
答案 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*$/
我认为你的正则表达式问题是在第一个捕获组之后没有空间允许