Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Xslt 如何对数字后的字符使用正则表达式_Xslt - Fatal编程技术网

Xslt 如何对数字后的字符使用正则表达式

Xslt 如何对数字后的字符使用正则表达式,xslt,Xslt,我想选择@reId,它的数字后面有一个字符fig-FigF.3A 输入: <p type="TOC_Level Two Entry"> <doclink refType="anchor" refId="fig-FigF.3A">Figure F.3A—Text<c type="TOC_Leader Dots"><t/></tps:c></tps:doclink> <ref format="TOC P

我想选择@reId,它的数字后面有一个字符fig-FigF.3A

输入:

<p type="TOC_Level Two Entry">
  <doclink refType="anchor" refId="fig-FigF.3A">Figure F.3A—Text<c
      type="TOC_Leader Dots"><t/></tps:c></tps:doclink>
  <ref format="TOC Page Number" refType="anchor" refId="fig-FigF.3A"/>
<p>
输出应为:

<p type="TOC_Level Two Entry"><doclink refType="anchor" 
  refId="fig-FigF.3A">F.3A<tps:t/>Text<c 
  type="TOC_Leader Dots"><t/></c></tps:doclink><ref
   format="TOC Page Number" refType="anchor" refId="fig-FigF.3A"/></tps:p>
试用代码:

我试图用这个正则表达式^Figure\d+|[A-Z]。\d+-.*来解决这个问题。但它不起作用


我怎样才能解决这个问题?我使用的是xslt 2.0,因此,试图从中提取一个清晰的需求语句,您似乎希望输入fig-FigF.3A得到输出F.3A。或者,您可能希望将图F.3A-Text作为输入?一方面,你说你正在选择@reId属性——这在你的输入中并不存在;另一方面,您尝试的解决方案是查找出现在文本节点中的文本图形,而不是属性

所以我认为我们需要一个更清晰的需求声明

作为一个需求声明,另一个问题是您只给出了一个示例,而不是一般规则。在你的问题中有一个一般规则的提示,在数字后面有一个字符。但这意味着什么?您的示例似乎在寻找模式字母点位,这与您对问题的描述完全不匹配


对不起,主持人,这不是答案,这是对问题的评论。它开始是一个答案,直到我意识到这个问题不清楚,但到那时,它太长了,无法发表评论。

因此,试图从中提取一个清晰的需求陈述,似乎您希望输入fig-FigF.3A得到输出F.3A。或者,您可能希望将图F.3A-Text作为输入?一方面,你说你正在选择@reId属性——这在你的输入中并不存在;另一方面,您尝试的解决方案是查找出现在文本节点中的文本图形,而不是属性

所以我认为我们需要一个更清晰的需求声明

作为一个需求声明,另一个问题是您只给出了一个示例,而不是一般规则。在你的问题中有一个一般规则的提示,在数字后面有一个字符。但这意味着什么?您的示例似乎在寻找模式字母点位,这与您对问题的描述完全不匹配

对不起,主持人,这不是答案,这是对问题的评论。它开始是一个答案,直到我意识到问题不清楚,但到那时,它太长了,无法发表评论。

您的输入plz检查格式不正确

如果您只想更改文本,请将此代码与替换功能一起使用:

输入:

<p type="TOC_Level Two Entry">
  <doclink refType="anchor" refId="fig-FigF.3A">Figure F.3A—Text<c
      type="TOC_Leader Dots"><t/></tps:c></tps:doclink>
  <ref format="TOC Page Number" refType="anchor" refId="fig-FigF.3A"/>
<p>
代码:

输出:

演示:

您的输入plz检查列表格式不正确

如果您只想更改文本,请将此代码与替换功能一起使用:

输入:

<p type="TOC_Level Two Entry">
  <doclink refType="anchor" refId="fig-FigF.3A">Figure F.3A—Text<c
      type="TOC_Leader Dots"><t/></tps:c></tps:doclink>
  <ref format="TOC Page Number" refType="anchor" refId="fig-FigF.3A"/>
<p>
代码:

输出:


演示:

您可以尝试这个正则表达式:图[A-Z][.][0-9A-Z]+.+?[A-Za-Z]+。当我使用它时,我会得到作为F3A的输出。但是我想要的输出是F.3a如果你提供格式良好的输入和输出,你会让那些想要帮助你的人的生活变得更容易。你可以尝试这个正则表达式:Figure[A-Z][.][0-9A-Z]+.+?[A-Za-Z]+。当我使用它时,我得到的输出是F3A。但是我想要的输出是F.3A。如果你提供格式良好的输入和输出,你将使那些想要帮助你的人的生活变得更加轻松。
    <?xml version="1.0" encoding="UTF-8"?>
<p type="TOC_Level Two Entry">
<tps:doclink xmlns:tps="htttp:\\tps" refType="anchor" refId="fig-FigF.3A">F.3B<tps:c type="TOC_Leader Dots"><t/></tps:c></tps:doclink>
<ref format="TOC Page Number" refType="anchor" refId="fig-FigF.3A"/>
</p>