regex - 更改r中字符串中单词的位置

标签 regex r string

我有一个字符串向量,看起来像:

> string_vec
 [1] "XXX"                     "Snakes On A Plane"       "Mask of the Ninja"       "Ruslan"                 
 [5] "Kill Switch"             "Buddy Holly Story, The"  "Believers, The"          "Closet, The"            
 [9] "Eyes of Tammy Faye, The" "Gymnast, The"            "Hunger, The" 
有些名称的末尾包含“,The”。我想删除逗号和空格,并将“The”移到所有其他文本之前。
例如:“Buddy Holly Story,The”变为“Buddy Holly Story”。
用模式隔离记录很容易:
string_vec[grepl("[Aa-zZ]+, The", string_vec) == TRUE]
我现在如何调整位置?
数据
string_vec <- c("XXX", "Snakes On A Plane", "Mask of the Ninja", 
"Ruslan", 
"Kill Switch", "Buddy Holly Story, The", "Believers, The", 
"Closet, The", 
"Eyes of Tammy Faye, The", "Gymnast, The", "Hunger, The")

最佳答案

你可以试试

sub('^(.*), The', 'The \\1', string_vec)
#[1] "XXX"                    "Snakes On A Plane"      "Mask of the Ninja"     
#[4] "Ruslan"                 "Kill Switch"            "The Buddy Holly Story" 
#[7] "The Believers"          "The Closet"             "The Eyes of Tammy Faye"
#[10] "The Gymnast"            "The Hunger"  

关于regex - 更改r中字符串中单词的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30055961/

相关文章:

java - 从Java中的另一个字符串列表中替换字符串的最后一个子字符串的最有效方法

按向下箭头键后检索一行代码

r - 如何解释H2O的混淆矩阵?

regex - 在 bash 中匹配具有一定数量的唯一字符的字符串

string - 在 Julia 中从字符串转换为 boolean 值

Java使用正则表达式分割并丢弃重复的字符

python - 正则表达式匹配另一个特定术语之前或之后的术语

java - Java中将String格式的日志记录划分为列

python - 匹配 uuid.uuid4().hex 生成的值的正确正则表达式是什么?

Java getRuntime.exec() - 错误流中的 "Fatal error: no such file or directory"(无异常(exception))