理解R中这个grepl()函数的工作原理

时间:2017-07-23 18:26:58

标签: r grepl

我有一个示例grepl()代码,用于区分男性和女性名称。给出以下代码并且它有效,但我无法理解它是如何工作的。

name = c("Braund, Mr. Owen Harris",
         "Cumings, Mrs. John Bradley (Florence Briggs Thayer)")

grepl("\\(.*?\\)", name)
# [1] FALSE  TRUE

2 个答案:

答案 0 :(得分:0)

匹配基于(,零个或多个字符(.*)的存在,紧跟其后跟一个结束))。在这里,它假设女性名字有括号。我们还可以根据Mrs.

进行匹配
grepl("\\bMrs\\.", name)
#[1] FALSE  TRUE

答案 1 :(得分:0)

您的代码不区分男性和女性名称。

"\\(.*?\\)"regular expression。它是一种在大文本中搜索模式的有效方式(如CTRL + F

grepl("\\(.*?\\)", name)names中搜索符合左括号(,后跟多个字符,后跟右括号)的元素。< / p>

因此,这个正则表达式区分男性和女性名称,它区分具有( .. something something .. )的元素和没有这种模式的元素。