我有一个字符串:
str = 'Mr[5]'
Run Code Online (Sandbox Code Playgroud)
我想切换的位置Mr,并5在str,并得到这样的结果:
result = '[5]Mr'
Run Code Online (Sandbox Code Playgroud)
我怎么能在R中这样做?
您可以使用具有2个匹配组的正则表达式,您可以为其更改位置.
stringr包有助于角色操纵.
s <- c("Mr[5]", "Mr[3245]", "Mrs[98j]")
stringr::str_replace_all(s, "^(.*)(\\[.*\\])$", "\\2\\1")
#> [1] "[5]Mr" "[3245]Mr" "[98j]Mrs"
Run Code Online (Sandbox Code Playgroud)
关于正则表达式
^是字符串和$结尾的开头.* 匹配每个字符,零个或多个时间(并)定义匹配组\\[并\\]匹配文字括号Mr然后[5]:"(.*)(\\[.*\\])"\\1指第一个匹配组,\\2指第二个匹配组.\\2\\1逆组显然,您可以创建一个更符合您需求的更好的正则表达式.具有匹配组的机制保持不变.regex101是一个很好的网站,可以帮助您使用正则表达式.在R,stringr网站有关于正则表达式的很好的介绍