【发布时间】:2018-08-23 15:35:39
【问题描述】:
我浏览了几个示例并尝试修改我的搜索以了解什么是什么。
输入:
<Description>Ottelu pelattu 22.4.2018. Gagarin Cupin 5. finaaliottelu. Selostus: Antti Mäkinen.</Description>
<Description>Ottelu pelattu 20.4.2018. Gagarin Cupin 1. finaaliottelu. Selostus: Antti Mäkinen.</Description>
<Description>Ottelu pelattu 22.4.2018. Gagarin Cupin 2. puolivälierä. Selostus: Antti Mäkinen.</Description>`
我想要做的是选择这些到我的输出:
- “加加林库宾 5.finaaliottelu”
- “加加林库宾 2. puolivälierä”
中间没有点。
我可以使用 substring-before/after,但我知道使用正则表达式可能有用吗?
我做了这个来获取我需要的东西:Gagarin Cupin\s\d\W\s\w*[a-zA-ZäöüÄÖÜß]*
但是现在我如何在 XSLT 中使用它呢?我应该使用analyze-string() 吗?还是matches()?
XSLT:
<xsl:variable name="episode" select="Description"/>
<xsl:variable name="fetchcup">
<xsl:analyze-string select="$episode" regex="Gagarin Cupin\s\d\W\s\w*[a-zA-ZäöüÄÖÜß]*">
<xsl:matching-substring>
<xsl:value-of select="regex-group(1)"/>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:variable>
<Cup><xsl:value-of select="$fetchcup"/></Cup>
但老实说,尽管浏览了教程页面和示例,但我觉得我缺少一些关于它如何工作的基础知识。如果我踏进门,我可以进一步应用它。
【问题讨论】:
-
考虑向我们展示一些最小但完整的输入示例和 XSLT 以演示问题,以及您想要的输出和您获得的输出。目前尚不清楚您是否将这些
Description元素作为公共父元素的同级元素,然后您是否在与父元素匹配的模板中拥有<xsl:variable name="episode" select="Description"/>并选择所有Description元素并期望使用analyze-string同时在所有这些上。
标签: regex xslt-2.0 regex-group