M.P*_*ico 4 regex r pattern-matching grepl
我在将模式与 中的文本字符串匹配时遇到一些问题R。
当文字类似于以下内容时,我正在尝试TRUE理解grepl"lettersornumbersorspaces y lettersornumbersorspaces".
我正在使用以下内容regex:
([:alnum:]|[:blank:])+[:blank:][yY][:blank:]([:alnum:]|[:blank:])+
Run Code Online (Sandbox Code Playgroud)
当使用regex如下方法获取“地址”时,它会按预期工作。
regex <- "([:alnum:]|[:blank:])+[:blank:][yY][:blank:]([:alnum:]|[:blank:])+"
address <- str_extract(fulltext, regex)
Run Code Online (Sandbox Code Playgroud)
我看到该地址就是我需要的文本。现在,如果我想使用如下方式grepl获取TRUE:
grepl("([:alnum:]|[:blank:])+[:blank:][yY][:blank:]([:alnum:]|[:blank:])+", address,ignore.case = TRUE)
Run Code Online (Sandbox Code Playgroud)
FALSE被返回。这怎么可能?我正在使用相同的方法regex来获取TRUE. 我尝试过修改参数grepl,但没有一个与此相关。
文本示例如下:"26 de Marzo y Pareyra de la Luz"
谢谢!!
尽管stringr ICU 正则表达式引擎支持模式中的裸 POSIX 字符类,但在基本 R 正则表达式风格(PCRE ( perl=TRUE) 和 TRE)中,POSIX 字符类必须位于方括号表达式内。[:alnum:]-> [[:alnum:]]。
x <- c("AZaz09 y AZaz09", "\xc4\x84\xc5\xbbaz09 y AZ\xc5\x81\xc5\x8209", "26 de Marzo y Pareyra de la Luz")\ngrepl("[[:alnum:][:blank:]]+[[:blank:]][yY][[:blank:]][[:alnum:][:blank:]]+", x)\n## => [1] TRUE TRUE TRUE\ngrepl("[[:alnum:][:blank:]]+[[:blank:]][yY][[:blank:]][[:alnum:][:blank:]]+", x, perl=TRUE)\n## => [1] TRUE TRUE TRUE\nRun Code Online (Sandbox Code Playgroud)\n\n查看在线演示
\n\n单独使用时,它是一个简单的括号[:alnum:]表达式,匹配单个:字符,a ,,,,,,,alnum单独
图案详情:
\n\n[[:alnum:][:blank:]]+- 1+ 个字母数字或水平空白符号[[:blank:]]- 1 个水平空白符号[yY] - 两者y任一Y[[:blank:]]- 1 个水平空白符号[[:alnum:][:blank:]]+- 1+ 个字母数字或水平空白符号| 归档时间: |
|
| 查看次数: |
570 次 |
| 最近记录: |