从正则表达式开始位置的字符串中的任意位置移动给定模式

时间:2019-02-14 07:19:28

标签: r regex

假设字符串为x <- "4528383 validation 34567 validation 34567",则需要将第一个模式"validation 34567"移动到字符串的开头。

我该怎么做?

预期输出:

"validation 34567 4528383 validation 34567"

2 个答案:

答案 0 :(得分:2)

以R为基数,使用正则表达式组并将它们重新排序(从1-2-3到2-1-3)

sub("(^.*)(validation 34567 )(.*$)", "\\2\\1\\3", x)

#[1] "validation 34567 4528383 validation 34567"

答案 1 :(得分:0)

一个选项是:

library(stringr)
library(wrapr)

x = "MANY THINGS AAA BBB CCC 4528383 validation 34567 validation 34567"

x %.>%
  paste(
    str_extract(., 'validation \\d+'),
    str_remove(., 'validation \\d+')
  )

输出:

"validation 34567 MANY THINGS AAA BBB CCC 4528383  validation 34567"