簡體   English   中英

如何刪除第一個字母(字符串的R向量)之前的所有非字母字符

[英]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)

IDEONE演示

^\\\\P{L}*正則表達式表示:

  • ^ -聲明字符串的開頭
  • \\\\P{L}* -除字母以外的0個或更多字符。

如果您的城市名稱以Unicode字母開頭,則首選此解決方案。

刪除號碼:

 gsub('\\d+','',cities)
 [1] "London"     " London"    "Stockholm"  " Stockholm"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM