You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XSLT 1.0中如何查找字符串内的非字母数字字符

XSLT 1.0 提取字符串中非字母数字字符的实现方案

XSLT 1.0 没有内置正则相关函数,我们可以通过translate()函数配合白名单机制实现需求,核心思路是把所有合法的字母数字字符从原字符串中移除,剩下的就是需要提取的非字母数字字符。

具体实现步骤:

  • 先定义字母数字白名单,包含大小写英文字母和0-9数字
  • 调用translate()方法,将原字符串中所有在白名单内的字符替换为空
  • 输出剩余的字符,就是所有非字母数字内容

示例代码:

<!-- 定义合法字母数字白名单 -->
<xsl:variable name="allowedAlnum" select="'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'" />

<!-- 测试用输入字符串 -->
<xsl:variable name="testStr" select="'Hello&amp;World'" />

<!-- 提取非字母数字字符的核心调用 -->
<xsl:value-of select="translate($testStr, $allowedAlnum, '')" />

运行上述代码后,输出结果就是&amp;,和示例需求一致。

补充说明:

  • 如果需要允许中文、下划线等其他字符,直接把对应字符添加到allowedAlnum白名单变量里即可
  • 如果需要对返回的非字母数字字符去重,可以再加一层嵌套处理:translate($nonAlnumResult, translate($nonAlnumResult, $nonAlnumResult, ''), ''),即可得到无重复的结果

内容的提问来源于stack exchange,提问作者Patty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:39:04