问题描述
基于此 tei
示例,target='example.com#ktu1-1_ii_l13b-14_tmġyn'
我想删除 #
之前(包括)_
和之后(包括)最后一个 :
的所有内容,前两个下划线必须替换为 <xsl:variable name="verb" select="replace(replace(tokenize (@target,'\s+')!substring-after(.,'#'),'_',':'),'.+:.+.:','')"/>
。我试过了:
gdb
但是当预期结果应该是 ktu1-1:ii:l13b-14 时,这给出了与预期结果 (tmġyn) 相反的结果。
提前,非常感谢您的帮助。
解决方法
我找到了,基于这个答案 regex to remove everything after the last dot in a file:
:[^:]*$
。
所以它完美无缺:
<xsl:variable name="verb" select="replace(replace(tokenize (@target,'\s+')!substring-after(.,'#'),'_',':'),':[^:]*$','')"/>
,
使用 XSLT(2.0 或更高版本),您可以:
<xsl:value-of select="tokenize(substring-after(@target,'_')[position() lt last()]" separator=":"/>