[英]How to erase all non-letter characters before first letter (R vector of character strings)
我有一个字符串向量:
cities <- c("London", "001 London", "Stockholm", "002 Stockholm")
我需要删除每个字符串中首字母之前的所有内容,这样我才能:
cities <- c("London", "London", "Stockholm", "Stockholm")
我已经尝试过了
cities <- sub("^.*?[a-zA-Z]", "", cities)
但这也抹掉了我不想发生的第一个字母。
使用否定的字符类来匹配开头存在的所有非字母字符。
cities <- sub("^[^a-zA-Z]*", "", cities)
要么
使用捕获组捕获第一个字母字符。
cities <- sub("^.*?([a-zA-Z])", "\\1", cities)
采用
cities <- c("London", "001 London", "Stockholm", "002 Stockholm")
gsub("^\\P{L}*", "", cities, perl=T)
^\\\\P{L}*
正则表达式表示:
^
-声明字符串的开头 \\\\P{L}*
-除字母以外的0个或更多字符。 如果您的城市名称以Unicode字母开头,则首选此解决方案。
删除号码:
gsub('\\d+','',cities)
[1] "London" " London" "Stockholm" " Stockholm"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.