我看到这个问题的许多答案(例如this),他们将(一小部分)允许的字符池与
translate(input, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', '')
匹配,而不是直接匹配不合法的字符。
我需要以相反的方式进行,因为我想保留的字符基本上是羊毛Unicode,而我想用破折号替换的字符只是:
!$&'*+,-./:;=?@_~
。
那么,如何匹配下面的字符并且仅匹配这些字符,并将它们替换为破折号?
如果我正确理解你的问题,你想做的是:
<xsl:value-of select='translate(input, "!$&'*+,-./:;=?@_~", "-----------------")'/>