我正在尝试使用regex:从姓氏列表中删除后缀
names <- c("John max Jr.", "manuel cortez", "samuel III", "Jameson")
lapply(names, function(x) str_extract(x, ".*[^\s.*\.$]"))
输出:
[1] "John max Jr"
[[2]]
[1] "manuel cortez"
[[3]]
[1] "samuel III"
[[4]]
[1] "Jameson"
我目前正在做的事情不起作用。。。。我试图删除所有以句点结尾的单词。如果你能帮我解决这个问题并解释一下,我将不胜感激。我也需要去掉罗马数字,但希望我能在学会去掉句号后弄清楚。
期望输出:
John max
manuel cortez
samuel
Jameson
更新以删除罗马数字:
lapply(names, function(x) str_extract(x, ".*[^(\s.*\.$)|(\sI{2}+)]"))
如果我们只想remove
什么,也许str_remove()
更好:
library(stringr)
lapply(names, function(x) str_remove(x, "\w+\.$")) |>
trimws()
"John max" "manuel cortez" "samuel III" "Jameson"