Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Regex 用重新构造的文本索引语法替换latex索引语法_Regex_Latex_Restructuredtext_Pandoc - Fatal编程技术网

Regex 用重新构造的文本索引语法替换latex索引语法

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

我正在使用Pandoc将一个文档从LaTeX(XeTeX)转换为ReStructuredText。该文档有大量索引项,而Pandoc不处理索引。当Pandoc转换时,索引项被剥离,只留下条目的文本。因此,我需要的是一种方法,在转换后Pandoc将索引项剥离出来之前,将其转换为LaTeX文件中的ReST语法。在我的测试中,这种方法是有效的:Pandoc保留索引项,但逃避倒勾。我可以把它们去掉。以下是我手动操作时的外观:

\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+”,并使用反勾号作为替换术语。