假设我有一些像这样的字符串:
strings <- c("Robert: my name is Robert", "Michael my name is Michael", "Jack: I like turtles")
我想创建一个正则表达式查询,它完全返回
[1] "Robert" "Michael"
即。名称后跟“我的名字”,并删除名称后面的任何可能的冒号。我的尝试是:
regmatches(strings, regexpr(".*(?=:* my name)", strings, perl = T))
在这里,我尝试通过编写
来选择匹配冒号(?=:* my name)
然而,在这种情况下,结肠标志似乎没有被lookbehind断言捕获(或者是吗?),而是我得到了
[1] "Robert:" "Michael"
是否有某种方法可以更改lookbehind断言中的表达式(或者在其外部)以从结果中删除冒号? 完整代码:
strings <- c("Robert: my name is Robert", "Michael my name is Michael",
"Jack: I like turtles")
regmatches(strings, regexpr(".*(?=:* my name)", strings, perl = T))
答案 0 :(得分:2)