【问题标题】:Word boundaries in str_detect function in RR中str_detect函数中的字边界
【发布时间】:2019-02-13 19:21:56
【问题描述】:

在下面的字符串中,我希望 str_detect 仅在字符 'AD 时返回 TRUE ' 在字符串中找到。

ocode<-"ADV TXN CODE SCHED CC AMEX"

我试过了

str_detect(ocode,pattern="AD") which returns TRUE as expected
str_detect(ocode,pattern="ADV") which also returns TRUE as expected
str_detect(ocode,pattern="AD\b") returns FALSE as expected 

但是

str_detect(ocode,pattern="ADV\b") returns FALSE

我不明白为什么会这样?它应该没有找到'ADV'后跟空格并返回true吗?

我要解决的问题是过滤给定输入的字符串,但过滤器返回带有 AD 和 ADV 的字符串,而如果搜索条件是 AD,我希望过滤器只返回带有 AD 的字符串。

【问题讨论】:

    标签: r


    【解决方案1】:

    尝试使用str_detect(ocode,pattern="ADV\\b")。在 R 中使用正则表达式时,您必须转义 \

    而该正则表达式只返回 \\b 之前的内容,因为它返回非单词字符之前的所有内容:

    str_extract(ocode,pattern="ADV\\b")
    ## [1] "ADV"
    

    【讨论】:

    • 知道了。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多