如何在空格和点(。)之间提取字符串?

时间:2017-04-10 11:16:29

标签: r string

我有这个字符串:

" White,George Voultsios先生"

我想在空格和点之间提取部分:

"先生"

2 个答案:

答案 0 :(得分:0)

std::experimental

答案 1 :(得分:0)

你可以使用带有lookbehind的正则表达式和点的前瞻:

## The data:    
x <- c("White, Mr. George Voultsios", "LastName, Mrs. Firstname")

使用基础包:

regmatches(x, regexpr("(?<= ).*(?=\\.)", x, perl = TRUE))
# [1] "Mr"  "Mrs"

使用包stringr

library(stringr)
stringr::str_extract(x, "(?<= ).*(?=\\.)")
# [1] "Mr"  "Mrs"

(?<= ).*(?=\\.)模式的作用是:

  • 查找空格后的位置((?<= )
  • 然后捕获任意数量的字符(.*
  • 直到您到达一个跟随点((?=\\.)
  • 的位置