Google sheets 从APA引文中提取文本
我有一个包含APA引文风格文本的电子表格,我想把它们分成作者、日期和标题 引用的一个例子是:Google sheets 从APA引文中提取文本,google-sheets,formulas,re2,Google Sheets,Formulas,Re2,我有一个包含APA引文风格文本的电子表格,我想把它们分成作者、日期和标题 引用的一个例子是: Parikka, J. (2010). Insect Media: An Archaeology of Animals and Technology. Minneapolis: Univ Of Minnesota Press. 鉴于此字符串位于字段I2中,我设法执行以下操作: 名称:=LEFT(I2,FIND(“(”,I2)-1)产生Parikka,J. 日期:=MID(I2,FIND(“,I2)+1
Parikka, J. (2010). Insect Media: An Archaeology of Animals and Technology. Minneapolis: Univ Of Minnesota Press.
鉴于此字符串位于字段I2中,我设法执行以下操作:
名称:=LEFT(I2,FIND(“(”,I2)-1)
产生Parikka,J.
日期:=MID(I2,FIND(“,I2)+1,FIND(“),I2)-FIND(“,I2)-1
收益率2010
然而,我一直在提取标题昆虫媒介:动物与技术考古学的名称。
我当前的公式=MID(I2,FIND(“).”,I2)+2,FIND(“).”,I2)-FIND(“.”,I2))
仅部分返回标题-输出应显示)和以下之间的每个字符
我尝试了=REGEXEXTRACT(I2,“\)\.\s(.[^\.])\.\s”)
,这通常可以工作,但不会在第一个“.”处停止-与此示例类似:
Sanders,E.B.-N.,Brandt,E.,和Binder,T.(2010)。组织参与式设计工具和技术的框架。第11届两年期参与式设计会议记录(第195-198页)。ACM。从http://dl.acm.org/citation.cfm?id=1900476
哪里出错了?试试:
=split(SUBSTITUTE(SUBSTITUTE(I2, "(",""), ")", ""),".")
如果你不在2010年前后替换括号,它会认为这是一个负数——2010年
对于标题,请尝试将索引拆分添加到现有公式中:
=index(split(REGEXEXTRACT(A5, "\)\.\s(.*[^\.])\.\s" ),"."),0,1)&"."
标题如下(至少在您给出的两个示例中):
=MID(I2,find("). ",I2)+3,find(". ",I2,find("). ",I2)+3)-(find("). ",I2)+3)+1)
英语:在第一次出现)之后开始获取子字符串。
,直到并包括以下第一次出现的
如果您希望使用REGEXEXTRACT
,那么这是有效的(在您的两个示例中)。(您还可以看到a。):
错在哪里
在表达式中,您捕获的是(.*[^\.])
,它贪婪地包含字符类中的任意数量的字符后跟字符,而不是(反斜杠或点)
,这意味着可以捕获多个句子。表达式以未捕获的\.\s完成,因此捕获组将在句点之后的空格之前结束,而不是包含它。hi ed!这一年确实有效,但我正在努力输出标题“)”之后的整个长度,然后是另一个
=REGEXEXTRACT(I3,"(?:.*\(\d{4}\)\.\s)([^.]*\.)(?: .*)")