【发布时间】:2019-06-26 02:46:55
【问题描述】:
我对正则表达式还是很陌生,我试图在长字符串中被“\\b”包围时检测带有“+”符号的单词,但 stringr 和 grepl 都给了我错误的结果。
这是我写的代码:
library(stringr)
str_detect("coversyl +", "\\bcoversyl(plus| plus|\\+| \\+)\\b")
输出为 FALSE,这是错误的。
正确的做法是什么?
【问题讨论】:
-
与this相关
-
正是这个。如果在用非单词字符/字符串的开始(结束)括起来时必须匹配,则不应在非单词字符旁边使用单词边界。如果您需要明确的单词边界,请使用
(?<!\w)/(?!\w)lookarounds:"(?<!\\w)coversyl(plus| plus|\\+| \\+)(?!\\w)"