以下是 XML 技术手册中使用的几个版本的 XREF 代码,3 位技术作者正在团队中工作。显然,如果它们与 XREF 语法一致,那就太好了,但事实并非如此:
<xref figid="FIG_011"/>, 1
<xref figid="figure041"/> 8 (Please notice this XREF is missing a comma following the ">")
<xref figid="figure_025"/>, 4
当呈现为 PDF 时,上面的 XREF 代码如下所示:
图 3、1
图 19 8
图 30、4
现在的目标是在数字“1、8 和 4”之前添加单词“Item”。如果需要,还可以在 /> 后面加一个逗号。以下是 RegEx 需要输出的内容:
图 3,第 1 项
图 19,第 8 项
图 30,第 4 项
我需要 RegEx 来查找的是 XREF 代码的这两部分:
<xref figid=" Also: "/>
我需要RegEx忽略的是:
开头“(左引号)和结尾”(右引号)内的所有文本。以及位于末尾的项目编号,例如“1、8 和 4”。所有这些字符从 FigID 到 FigID 都不同,因此需要被 RegEx 忽略。如果逗号已经存在,它也需要忽略它(但另一方面,如果它丢失了也添加一个)。
我需要 RegEx 替换为:
<xref figid="FIG_011"/>, Item 1
<xref figid="figure041"/>, Item 8 (Please notice the comma addition following the ">")
<xref figid="figure_025"/>, Item 4
你有它。我希望我的解释是清楚的,而不是令人困惑的。我打过的砖墙主要是两堵。
首先,如何使 RegEx IGNORE 字符从外部参照更改为外部参照实例,因此只针对保持一致的字符,例如:
<xref figid=" Also: "/>
其次,如何让 RegEx 知道何时添加逗号或何时不添加逗号,以便它显示在 PDF 中,如下例所示:
图 19,第 8 项
而不是这样:
图 19 项目 8
是否可以将此非此即彼的功能编码到正则表达式中?就此而言,我在 RegEx 中尝试做的任何事情都是可能的吗?我祈祷这是因为手册中有超过 700 个 XREF 需要更改。