Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 提取章节标题中的段落_R_Regex - Fatal编程技术网

R 提取章节标题中的段落

R 提取章节标题中的段落,r,regex,R,Regex,我的文本(通过readtext读入)如下所示: Lorem Ipsum的第一个摘要 Lorem Ipsum只是印刷和排版的虚拟文本 工业。Lorem Ipsum一直是业界标准的虚拟文本 从16世纪开始,当一个不知名的印刷商在一个厨房里打印 把它拼凑成一本样本书 Lorem Ipsum第二次总结 它不仅存活了五个世纪,而且还跨越了 电子排版,基本保持不变。是的 20世纪60年代,随着Letraset床单的发行而流行起来 包含Lorem Ipsum段落,最近使用桌面 发布软件,如Aldus Page

我的文本(通过readtext读入)如下所示:

Lorem Ipsum的第一个摘要

Lorem Ipsum只是印刷和排版的虚拟文本 工业。Lorem Ipsum一直是业界标准的虚拟文本 从16世纪开始,当一个不知名的印刷商在一个厨房里打印 把它拼凑成一本样本书

Lorem Ipsum第二次总结

它不仅存活了五个世纪,而且还跨越了 电子排版,基本保持不变。是的 20世纪60年代,随着Letraset床单的发行而流行起来 包含Lorem Ipsum段落,最近使用桌面 发布软件,如Aldus PageMaker,包括Lorem版本 Ipsum


我想单独提取这两个部分,不带它们的部分标题,并将它们保存为R中的两个不同字符串,以便我可以将它们转换回单独的.txt文件。

您可以使用正则表达式拆分字符串(使用
strsplit
),然后使用
setdiff
删除
titles
strsplit
结果之间的相似性


以上正则表达式的解释
\\h*\\R\\h*\\R\\h*
。为了简单起见,我删除了下面的双反斜杠(这只是R中的字符转义):

  • \h
    匹配水平空白
  • *
    量化上一个标记(在上面的regex
    \h
    中)以匹配它零次或多次
  • \R
    匹配任何Unicode换行符序列(
    \R\n
    \R
    \n
正则表达式匹配两个换行符(如果输入有类似于
\r\n\t\r\n
的内容,则在换行符中或其周围有任意数量的水平空格)

这方面的非Perl等价物是:

[ \\t]*(?:\\r\\n|[\\r\\n])[ \\t]*(?:\\r\\n|[\\r\\n])[ \\t]*

到目前为止有什么努力吗?字符串成为有效标题的规则是什么?如何识别标题和段落?标题后面可以有多个段落吗?如果它是常量,您可以简单地在
(?:\r\n |[\r\n])[\t]*(?:\r\n |[\r\n])
上拆分文档,然后每秒提取一次结果(数组中的位置0,2,4,6…)这个问题已经被问过好几次了。例如、、和。@MitchPudil如何识别标题?我们对您的问题的了解程度与您的不同,因此当您没有确定格式、我们需要回答的信息以及您遇到的问题时,很难说出您需要什么。@MitchPudil这并不能帮助我确定标题,一定有某种规则,或者一个包含所有标题的列表变量,我们需要识别标题。现在,我唯一能真正确定标题的方法是,它是您发布的文本中的第0句和第2句,或者,当标题不存在时,段落以
结尾。正则表达式是一组规则,但我们无法帮助您,因为只有您知道所需的格式。如果没有必须遵守的规则,我们甚至无法开始生成正确的正则表达式模式。
[1] "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book."                                                                                   
[2] "It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."
[ \\t]*(?:\\r\\n|[\\r\\n])[ \\t]*(?:\\r\\n|[\\r\\n])[ \\t]*