使用R替换字符串中元素的位置

使用R替换字符串中元素的位置,r,string,replace,R,String,Replace,我有一个字符串: str = 'Mr[5]' 我想在str中切换Mr和5的位置,得到如下结果: result = '[5]Mr' 如何在R中执行此操作?您可以使用带有2个匹配组的正则表达式来更改其位置。 stringr软件包有助于字符操作。 s[1]“[5]Mr”“[3245]Mr”“[98j]Mrs” 关于正则表达式 ^是字符串的开头,$是字符串的结尾 *匹配每个字符,零次或多次 (和)定义匹配组 \\[和\\]匹配文字括号 您有一个简单的正则表达式,它匹配示例Mr然后[5]:“(.

我有一个字符串:

str = 'Mr[5]'
我想在
str
中切换
Mr
5
的位置,得到如下结果:

result = '[5]Mr'

如何在R中执行此操作?

您可以使用带有2个匹配组的正则表达式来更改其位置。
stringr
软件包有助于字符操作。

s[1]“[5]Mr”“[3245]Mr”“[98j]Mrs”
关于正则表达式

  • ^
    是字符串的开头,
    $
    是字符串的结尾
  • *
    匹配每个字符,零次或多次
  • 定义匹配组
  • \\[
    \\]
    匹配文字括号
  • 您有一个简单的正则表达式,它匹配示例
    Mr
    然后
    [5]
    “(.*)(\\[.\\])”
  • \\1
    表示第一个匹配组,
    \\2
    表示第二个匹配组<代码>\\2\\1将组反转
显然,您可以创建一个更好的正则表达式,它完全符合您的需要。与保留的匹配组的机制。是一个帮助你使用正则表达式的好网站。 在R中,
stringr
网站有关于的精彩介绍,您可以使用:


values您是否可以显示更多的示例,这些示例可能会使问题更加清楚?您有如下字符串:“Mr[1234],“Mrs[456]”等?@digEmAll,是的,没错。谢谢你的解释。非常感谢你的帮助和详细的解释!!
values <- c("Mr[5]","Mr[1234]", "Mrs[456]")
values2 <- gsub("^(.+)(\\[[0-9]+\\])$", "\\2\\1", values)

# > values2
# [1] "[5]Mr"    "[1234]Mr" "[456]Mrs"