R不区分大小写的捕获组

时间:2017-11-02 17:43:45

标签: r regex

这个正则表达式:

str_extract_all("This is a Test , ' ' " , "[a-z]+")

返回:

[1] "his" "is"  "a"   "est"

如何修改,这是不区分大小写的?

`[1] "This" "is"  "a"   "Test"` 
应该返回

/i应该区分区分大小写吗?

尝试str_extract_all("This is a Test , ' ' " , "[a-z]+/i")

返回

[[1]]
character(0)

2 个答案:

答案 0 :(得分:3)

stringr functions有一个特殊符号:

  

regex(pattern, ignore_case = FALSE, multiline = FALSE, comments = FALSE, dotall = FALSE, ...)

您可以使用

> str_extract_all("This is a Test , ' ' " , regex("[a-z]+", ignore_case=TRUE))
[[1]]
[1] "This" "is"   "a"    "Test"

或者,使用内联i修饰符(?i)

str_extract_all("This is a Test , ' ' " , "(?i)[a-z]+")

答案 1 :(得分:2)

您可以尝试在您要搜索的集合中包含大写字母。

str_extract_all("This is a Test , ' ' " , "[A-Za-z]+")

如果您只希望第一个字母大写,您可以尝试下面的代码。它允许第一个字母不区分大小写,然后只有小写。

str_extract_all("This is a Test , ' ' " , "[A-Za-z][a-z]*")