我正在编写一些宏,用于自动执行我编辑的参考书目中的频繁清理/文本格式化任务。作为背景,这些参考书目通常包含已编辑卷中的章节引文和期刊引文。
我想自动查找所有实例
(.” In )(<*>)(, edited)
如同
编辑卷示例:
特蕾西·阿德伦
2004 年“玛雅考古旅游中的玛雅人在哪里?广告和文化挪用。”营销遗产:考古学与过去的消费,由 Yorke M. Rowan 和 Uzi Baram 编辑,103-116。加利福尼亚州核桃溪:Rowman and Littlefield。
并且所有实例
(.” )(<*>)( [0-9])
如同
期刊文章示例:
Cipolla,Craig N. 和 James Quinn
2016 年“莫希干方式的实地学校考古学:对二十年基于社区的研究和教学的反思”。社区考古与遗产杂志3 (2): 118–34。
(这些期刊和编辑卷的标题并不总是正确地用斜体显示,所以我不能只搜索格式,唉。)
我会分别运行这两个搜索,并分别执行我需要的内容,但当我运行第一个搜索时,它可能会先找到一篇期刊文章,发现没有“编辑者”,然后继续搜索,直到找到确实有“编辑者”的条目,这可能在几页之后。或者,期刊文章搜索会在编辑卷引文处中断,因为它没有看到指示其停止的 ([0-9])。
关于我应该如何继续,有什么建议吗?我对 VBA 或正则表达式一无所知:我只是一个出版小工,试图自动完成一些最繁琐的任务。
谢谢!
答案1
如果这里唯一的问题是跨多行匹配,请尝试用 替换(<*>)
。(<[!^13]@>)
这样,中间部分将不会匹配行尾,搜索将停止。