我有一些看起来像这样的数据(最后输入数据的代码):
Year Movie
2012 The Avengers
2015 Furious 7
2017 The Fate of the Furious
我想要的输出是:
Year Movie
2012 Avengers, The
2015 Furious 7
2017 Fate of the Furious, The
我应该使用stringr
和regex
格式吗?您是否可以推荐一个链接,以比大多数网站或帮助文档更简单地解释regex
?
这很差,但这是我目前所能做的:
str_replace(df$Movie, pattern = "The", replacement = "")
即使只是一些关于在帮助文档中查找哪些命令的提示,或者在哪里可以找到我应该查找的内容的解释,都会有所帮助。
df <- data.frame(stringsAsFactors=FALSE,
Year = c(2012L, 2015L, 2017L),
Movie = c("The Avengers", "Furious 7", "The Fate of the Furious")
)
df
str_replace(df$Movie, pattern = "The", replacement = "")
答案 0 :(得分:2)
尝试
sub("^([Tt]he?) (.*)", "\\2, \\1", df$Movie)
#[1] "Avengers, The"
#[2] "Furious 7"
#[3] "Fate of the Furious, The"
?
-表示“ The”是可选的,最多匹配一次。如果字符串以“ the”开头,也将匹配。感谢@rawr!
.
-匹配任意字符-零次或多次,*
表示
()
-将其中正则表达式匹配的文本捕获到一个编号组中,该编号组可以与编号后向引用(即\\1
和\\2
一起使用)。参见regular-expressions.info。
我希望这对您有所帮助。
答案 1 :(得分:2)
不漂亮,但这应该可以工作
n = int(input('Enter Range'))
arr=[]
for i in range(0,n):
print(i)
arr.append(input('Enter Number')) # Modify this line
arr.sort()
print(arr)