R语言 使用sub/gsub交换字符串并删除括号

5cg8jx4n  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(100)

我有下面的字符串(其中格式总是相同的,但地名不同),我希望像这样交换地点的顺序(并去掉括号);

team
Newcastle United, (Premier League)

试图得到;

team
Premier League, Newcastle United

要做到这一点,我认为我相当接近只是与特殊字符斗争。到目前为止,我有以下我试图说的一切,直到我们看到一个括号是我们分裂,然后我们交换他们。然后可以在另一行中删除括号

gsub("(.+)\\([A-z]+\\)", "\\2 \\1", team)
  • 字符串将保持相同的格式,除了逗号,逗号并不总是在那里
blmhpbnm

blmhpbnm1#

这样吧

txt <- c("Newcastle United, (Premier League)")

gsub("([^,]+), \\(([^)]+)\\)", "\\2 \\1", txt)
#> [1] "Premier League Newcastle United"

解释一下:我们有两个被俘的小组。

  • ([^,]+)多次匹配除逗号以外的所有内容
  • \\(([^)]+)\\)括号内的组,多次匹配除右括号外的所有内容

然后,我们用第二和第一捕获组替换整个匹配。

相关问题