gpt4 book ai didi

regex - 如何使用 XSLT 中的 RegEx 检查 xml textnode 是否包含中文字符

转载 作者:行者123 更新时间:2023-12-02 10:10:46 29 4
gpt4 key购买 nike

在此网站上http://gskinner.com/RegExr/ (这是一个正则表达式测试网站)这个正则表达式匹配有效匹配:[^\x00-\xff]
示例文本:test123 或元件数据不可用

但是如果我有这个输入 XML:

<?xml version="1.0" encoding="UTF-8" ?>
<root>
<node>test123 或元件数据不可用</node>
</root>

我用 Saxon 9 尝试这个 XSLT 2.0 样式表:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/root/node">
<xsl:if test="matches(., '[^\x00-\xff]')">
<xsl:text>Text has chinese characters!</xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

Saxon 9 给我以下错误输出:

    FORX0002: Error at character 3 in regular expression "[^\x00-\xff]": invalid escape sequence
Failed to compile stylesheet. 1 error detected.

如何检查 XSLT 2.0 中的中文字符?

最佳答案

XPath 支持的正则表达式方言基于 XSD 中定义的方言:您可以在 W3C 文档中找到完整规范,或者如果您喜欢更具可读性的内容,请在我的 XSLT 2.0 程序员引用中找到。不要假设所有正则表达式方言都是相同的。 XPath 正则表达式中没有 \x 转义,因为它是为嵌入 XML 而设计的,而 XML 已经提供了 &#xHHHH;

您可能会发现使用命名的 Unicode block 比使用十六进制范围更方便,例如 \p{IsCJKUnifiedIdeographs}

另请参阅What's the complete range for Chinese characters in Unicode?

关于regex - 如何使用 XSLT 中的 RegEx 检查 xml textnode 是否包含中文字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6611839/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com