次のxmlの例があります:
<test>
<p>Some text (page 24)</p>
<p>Some text (Page 24)</p>
<p>there is some text here (page 24) and here (page 25)</p>
<p>some text (pages 24, 7, 9)</p>
</test>
そして、正規表現を使用してすべてのページ テキスト スニペットを page_ref タグにラップしたいので、結果は次のようになります。
<test>
<p>Some text <page_ref>(page 24)</page_ref></p>
<p>Some text <page_ref>(Page 24)</page_ref></p>
<p>there is some text here <page_ref>(page 24)</page_ref> and here <page_ref>(page 25)</page_ref></p>
<p>some text <page_ref>(pages 24, 7, 9)</page_ref></p>
</test>
私のコードは次のようになります
<xsl:template match="text()">
<xsl:analyze-string select="." regex="\(([pP]age).*\)">
<xsl:matching-substring>
<page_ref><xsl:value-of select="."/></page_ref>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
しかし、生成されるため、3d p タグでは失敗します
<p>there is some text here <page_ref>(page 24) and here (page 25)</page_ref></p>
だから誰かが私にエラーを指摘することができれば、私は幸せな男になる. 前もって感謝します !