【问题标题】:Splitting string between capital and lowercase character in R?在R中的大写和小写字符之间分割字符串?
【发布时间】:2017-09-28 02:57:05
【问题描述】:

我有一个字符串向量:

v1 <- c("Firstname LastnameFirstname Lastname", 
"Firstname Lastname", 
"Firstname Lastname", 
"Firstname LastnameFirstname Lastname")

我想将字符串拆分为小写字母和大写字母,同时保留这两个字母。

期望的输出是:

[1] "Firstname Lastname" "Firstname Lastname"   "Firstname Lastname"  "Firstname Lastname"  "Firstname Lastname" "Firstname Lastname"

以下 StackExchange 中的示例我已经尝试使用 strsplit 函数和 gsub

unlist(strsplit( gsub("([a-z][A-Z])","\\1~",v1), "~" ))

但这不会在 字符之间拆分,而是在拆分点的正则表达式匹配之后:

[1] "Firstname LastnameF" "irstname Lastname"   "Firstname Lastname"  "Firstname Lastname"  "Firstname LastnameF" "irstname Lastname"  

如何拆分仍然保留两个字符的字符?

【问题讨论】:

    标签: r string


    【解决方案1】:

    我们可以使用正则表达式查找来匹配小写字母(正向查找 -(?&lt;=[a-z]))后跟大写字母(正向查找-(?=[A-Z])

    unlist(strsplit(v1, "(?<=[a-z])(?=[A-Z])", perl = TRUE))
    #[1] "Firstname Lastname" "Firstname Lastname" "Firstname Lastname" 
    #[4] "Firstname Lastname" "Firstname Lastname" "Firstname Lastname"
    

    【讨论】:

      猜你喜欢
      • 2019-11-22
      • 1970-01-01
      • 2022-06-28
      • 2011-06-16
      • 2021-05-31
      • 2020-09-13
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      相关资源
      最近更新 更多