Regex 用重新构造的文本索引语法替换latex索引语法
我正在使用Pandoc将一个文档从LaTeX(XeTeX)转换为ReStructuredText。该文档有大量索引项,而Pandoc不处理索引。当Pandoc转换时,索引项被剥离,只留下条目的文本。因此,我需要的是一种方法,在转换后Pandoc将索引项剥离出来之前,将其转换为LaTeX文件中的ReST语法。在我的测试中,这种方法是有效的:Pandoc保留索引项,但逃避倒勾。我可以把它们去掉。以下是我手动操作时的外观:Regex 用重新构造的文本索引语法替换latex索引语法,regex,latex,restructuredtext,pandoc,Regex,Latex,Restructuredtext,Pandoc,我正在使用Pandoc将一个文档从LaTeX(XeTeX)转换为ReStructuredText。该文档有大量索引项,而Pandoc不处理索引。当Pandoc转换时,索引项被剥离,只留下条目的文本。因此,我需要的是一种方法,在转换后Pandoc将索引项剥离出来之前,将其转换为LaTeX文件中的ReST语法。在我的测试中,这种方法是有效的:Pandoc保留索引项,但逃避倒勾。我可以把它们去掉。以下是我手动操作时的外观: \index{Some index item} # The LaTex
\index{Some index item} # The LaTex entry
:index:`Some index item` # Modified for ReST format (still in the LaTeX file)
:index:\`Some index item\` # Result after Pandoc conversion to ReST
我可以在最终ReST文件中用正确的反标记替换最终转义的反标记。我似乎不知道如何为LaTeX文件中的替换创建一个可行的方法(Regex?)。最受欢迎的建议(包括关于如何更好地完成整个生产的建议)。您似乎希望替换与以下正则表达式匹配的条目
^\\index\{([^}]*)\}
与
其中,$1
是对正则表达式的捕获组([^}]*)
的引用
例如,您可以使用shell脚本或在文本编辑器中手动执行此过程
注意,上面的正则表达式假设在
{}
中没有}
,似乎您希望替换与以下正则表达式匹配的条目
^\\index\{([^}]*)\}
与
其中,$1
是对正则表达式的捕获组([^}]*)
的引用
例如,您可以使用shell脚本或在文本编辑器中手动执行此过程
注意,上面的正则表达式假设
{}
中没有}
,谢谢您的帮助。你的正则表达式工作得很好。我越是深入研究这个问题,似乎就越需要手动处理其中一些索引项。例如,正则表达式适用于独立索引项,但不适用于内联索引项(当然,还有几种索引变体,例如具有分段语法、强调和其他功能的变体)。所以,至少我有一个开始。再次感谢你。@rosslaird。上面的正则表达式假设每个索引项都在一行的开头。如果不是这样,请删除前导的^
。是的,我这样做了,并捕获了更多的内联条目。现在棘手的是,独立条目只有一个术语,而内联条目有重复的术语。所以我现在有很多版本的:index:'entry'entry
。我正在研究如何使用正则表达式来删除第二个术语。对于偶然发现这一点的任何其他人,这里有一个正则表达式来替换索引术语的两次出现:(\b
\w+”),并使用反勾号作为替换术语。感谢您的帮助。你的正则表达式工作得很好。我越是深入研究这个问题,似乎就越需要手动处理其中一些索引项。例如,正则表达式适用于独立索引项,但不适用于内联索引项(当然,还有几种索引变体,例如具有分段语法、强调和其他功能的变体)。所以,至少我有一个开始。再次感谢你。@rosslaird。上面的正则表达式假设每个索引项都在一行的开头。如果不是这样,请删除前导的^
。是的,我这样做了,并捕获了更多的内联条目。现在棘手的是,独立条目只有一个术语,而内联条目有重复的术语。所以我现在有很多版本的:index:'entry'entry
。我正在研究如何使用正则表达式来删除第二个术语。对于偶然发现这一点的任何其他人,这里有一个正则表达式来替换索引术语的两次出现:(\b
\w+”,并使用反勾号作为替换术语。