【发布时间】:2020-04-12 19:34:41
【问题描述】:
我有这个词,"sam buy expensive toys as 125898652"。
我想提取“as”后面的单词,即“125898652”。
我正在使用
(?<=as\s)+[^\s]+
我已经在https://regex101.com/r/NaWAl1/1 上试过了,效果很好。 当我在 R 上执行它时,它返回错误为
Error: '\s' is an unrecognized escape in character string starting ""(?<='as'\s"
所以我修改为
(?<='CR'\s)+[^\s]+
它返回不同的错误:
Error in stri_extract_first_regex(string, pattern, opts_regex = opts(pattern)) :
Syntax error in regexp pattern. (U_REGEX_RULE_SYNTAX)
有人可以向我解释一下为什么 R 中的正则表达式不同以及如何使它起作用。非常感谢
【问题讨论】:
-
stringi::stri_extract_first_regex("sam buy expensive toys as 125898652","(?<=as\\s)[^\\s]+")非常适合您的情况。不要量化环视,它们是零宽度断言。并在字符串文字中使用双反斜杠来定义文字反斜杠。 -
我也为那里的每个双黑斜杠使用了双反斜杠,但它仍然不起作用
标签: r regex string extraction