【发布时间】:2016-01-05 10:44:23
【问题描述】:
我有一列数据集如下所示:
$abc.MSFT
$MSFT
$msft
$abcMSFTxyz
我想要以下输出:
$MSFT
$msft
我的过滤尝试:
dplyr::filter(Tweets, grepl("\\bMMM$\\b", ignore.case = TRUE, V2))
返回:
$abc.MSFT
$MSFT
$msft
或
dplyr::filter(Tweets,grepl("^$MMM$", ignore.case = TRUE, V2))
返回:
【问题讨论】:
-
试试
grepl("^\\$msft$", ignore.case = TRUE, x)。美元符号是正则表达式中的特殊字符。如果要匹配文字$,则必须使用反斜杠转义字符。 -
@ Pierre \\bMMM$\\b 有效,但它不能忽略字符串开头的标点符号。我希望它忽略除 $ 字符之外的所有其他标点符号。
-
@皮埃尔,好的,我会试试的。谢谢
-
如果
"\\bMMM$\\b"与"MSFT"匹配,那么我对正则表达式一无所知,您应该是回答问题的人。我真的很想看到代码示例。 (不只是你说“它回来了..”) -
@Pierre 感谢您的解决方案有效!
标签: regex r filter dplyr grepl