Regex 查找以获取R正则表达式中的文本
我有这样的数据:Regex 查找以获取R正则表达式中的文本,regex,r,lookbehind,Regex,R,Lookbehind,我有这样的数据: Good afternoon. Hello. My bro's name is John... and he said softly 0.8% : "Don't you think I am handsome??" HAHA. jiji. koko. 我想使用R中的Look Behind regex获取引用之前的句子和引用中的文本 第一:我想在一堆文本中寻找引号 第二步:回顾并摘录引文前的一句话。如果没有句子,那就好了。仍然提取引文中的文本 以下是我想要实现的目标: My b
Good afternoon. Hello. My bro's name is John... and he said softly 0.8% : "Don't you think I am handsome??" HAHA. jiji. koko.
我想使用R中的Look Behind regex获取引用之前的句子和引用中的文本
第一:我想在一堆文本中寻找引号
第二步:回顾并摘录引文前的一句话。如果没有句子,那就好了。仍然提取引文中的文本
以下是我想要实现的目标:
My bro's name is John... and he said softly 0.8%: "Don't you think I am handome??"
我尝试使用这个,但我想通过使用lookbehindregex寻求帮助。多谢各位
regmatches(x, gregexpr('[^\\.]+[\\.\\:]"([^"]*)"', x))
dput:
"Good afternoon. Hello. My bro's name is John... and he said softly 0.8% : \"Don't you think I am handsome?? \" HAHA. jiji. koko."
我们也可以使用
gsub
。我们匹配一个或多个非
字符,后跟
和一个或多个空格(\\s+
),或一个或多个空格,后跟一个或多个直到字符串结尾都不是空格的字符($
),并替换为'
或者,我们匹配一个或多个非
字符,后跟一个
,后跟一个或多个空格(\\s+
),然后捕获字符串的其余部分,直到“
后跟一个或多个字符(*
)到字符串末尾,并替换为捕获组(\\1
)
所以你还想去掉“\`”@Pascal我想在引号前提取一句话,以及引号内的文本。所以你的预期输出不正确?谢谢,有没有办法使用LookBehind?@user5566552稍作修改后更新谢谢,你能给我解释一下代码吗。谢谢。我只想提取1s在报价单前的结束语。如果我有:“再见。你好我兄弟的名字叫约翰。。。他轻轻地说:“你不觉得我很帅吗?”“哈哈。我不想得到“Hello”。但是使用这个,“Hello”被捕获。lookbehind正则表达式,我仍然得到Hello
gsub('[^.]+\\.\\s+|\\s+[^ ]+$', '', str1)
#[1] "My bro's name is John... and he said softly 0.8% : \"Don't you think I am handsome?? \""
gsub('^[^.]+\\.\\s+(.*(?:"[^"]+")).*$', '\\1', str1, perl=TRUE)
#[1] "My bro's name is John... and he said softly 0.8% : \"Don't you think I am handsome?? \""