R中的正则表达式以匹配方括号中的字符串

克里斯·鲁勒曼

我有讲故事的笔录,有很多重叠的语音实例,用方括号将重叠的语音包裹起来。我想提取这些重叠的实例。在以下模拟示例中,

ovl <- c("well [yes right]", "let's go", "oh [  we::ll] i do n't (0.5) know", "erm [°well right° ]", "(3.2)")

该代码可以正常工作:

pattern <- "\\[(.*\\w.+])*"
grep(pattern, ovl, value=T) 
matches <- gregexpr(pattern, ovl) 
overlap <- regmatches(ovl, matches)
overlap_clean <- unlist(overlap); overlap_clean
[1] "[yes right]"     "[  we::ll]"      "[°well right° ]"

但是在更大的文件中,没有数据帧。这是由于模式错误还是由于数据帧的结构导致的?df的前六行如下所示:

> head(df)
                                                             Story
1 "Kar:\tMind you our Colin's getting more like your dad every day
2                                             June:\tI know he is.
3                                 Kar:\tblack welding glasses on, 
4                        \tand he turned round and he made me jump
5                                                 \t“O:h, Colin”, 
6                                  \tand then (                  )
蒂姆·比格莱森(Tim Biegeleisen)

尽管在某些情况下可能会奏效,但您的模式对我而言还是遥不可及的。我认为应该是这样的:

pattern <- "(\\[.*?\\])"
matches <- gregexpr(pattern, ovl)
overlap <- regmatches(ovl, matches)
overlap_clean <- unlist(overlap)
overlap_clean

[1] "[yes right]"     "[  we::ll]"      "[°well right° ]"

演示版

这将匹配并捕获一个带括号的术语,使用Perl懒点确保我们在第一个结束括号处停止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式匹配方括号内大括号内的字符串

正则表达式匹配方括号内的字符串,用冒号分隔

正则表达式从具有多个方括号的字符串中查找匹配项

正则表达式分别匹配方括号中的文本

正则表达式返回字符串中方括号中的整数

用正则表达式替换字符串(方括号中除外)

Java正则表达式匹配方括号

正则表达式匹配方括号

方括号字符串的正则表达式

正则表达式以匹配括号或括号内的字符串中的数字

正则表达式:匹配括号括起来的字符串中的某些单词

正则表达式匹配不在某些括号中的字符串

正则表达式,用于匹配bash中方括号中的字符

匹配字符串中的正则表达式

python / pandas:使用正则表达式删除字符串中方括号中的所有内容

在R中使用正则表达式提取圆括号中的字符串

如何使用正则表达式替换没有嵌套括号的字符串中不匹配的括号?

R中的正则表达式,在替换中重用匹配的字符串

正则表达式匹配最后一个空格之后和方括号之前的字符串

如何使用正则表达式获取连续方括号中包含元素的字符串的子字符串?

python 2.7正则表达式与字符串中的\ r \ n匹配

正则表达式提取匹配R中某些单词的部分字符串

如何使用正则表达式提取R中字符串的不匹配部分?

使用 Gsub 获取 R 中匹配的字符串 - 正则表达式

Python正则表达式匹配方括号问题

匹配 perl 正则表达式中括号和方括号之外的所有逗号

正则表达式将不需要的花括号添加到匹配的字符串中

正则表达式 - 搜索忽略方括号的子字符串

以$开头的字符串的正则表达式,后跟整数并包含方括号