Escaped Periods In R Regular Expressions

后端 未结 3 1367
自闭症患者
自闭症患者 2020-11-28 08:44

Unless I am missing something, this regex seems pretty straightforward:

grepl(\"Processor\\.[0-9]+\\..*Processor\\.Time\", names(web02))

Ho

3条回答
  •  盖世英雄少女心
    2020-11-28 09:18

    My R-Fu is weak to the point of being non-existent but I think I know what's up.

    The string handling part of the R processor has to peek inside the strings to convert \n and related escape sequences into their character equivalents. R doesn't know what \. means so it complains. You want to get the escaped dot down into the regex engine so you need to get a single \ past the string mangler. The usual way of doing that sort of thing is to escape the escape:

    grepl("Processor\\.[0-9]+\\..*Processor\\.Time", names(web02))
    

    Embedding one language (regular expressions) inside another language (R) is usually a bit messy and more so when both languages use the same escaping syntax.

提交回复
热议问题