我在使用R
时,遇到了一些在文本串中匹配模式的问题。
我想要用grepl
函数来判断文本串是否匹配类似于"字母或数字或空格 y 字母或数字或空格"
这样的格式,如果匹配成功则返回TRUE
。
我正在使用以下的正则表达式
:
([:alnum:]|[:blank:])+[:blank:][yY][:blank:]([:alnum:]|[:blank:])+
使用以下
regex
来获取"address"时,它按预期工作。regex <- "([:alnum:]|[:blank:])+[:blank:][yY][:blank:]([:alnum:]|[:blank:])+"
address <- str_extract(fulltext, regex)
我看到地址是我需要的文本。现在,如果我想使用 grepl
来获得以下结果:TRUE
:
grepl("([:alnum:]|[:blank:])+[:blank:][yY][:blank:]([:alnum:]|[:blank:])+", address,ignore.case = TRUE)
返回结果如下:
返回FALSE
。这怎么可能?我使用相同的regex
来获取TRUE
。我尝试修改grepl
参数,但没有一个与此相关。
文本示例:"26 de Marzo y Pareyra de la Luz"
谢谢!
[:alnum:]
->[[:alnum:]]
。另外,您似乎想要在grepl
中使用PCRE模式,请添加perl=TRUE
。 - Wiktor Stribiżew