我有一个包含数字的字符串。仅使用 XPath 是否可行,我只能从中获取数字?
例如:myString="abcd12ef34gh567",结果:1234567
使用:
translate(., translate(.,'0123456789',''), '')
这就是所谓的“双重翻译”方法,由@Michael Kay 首次提出,可以在 XPath 1.0 和 XPath 2.0 中使用。
当然,在 XPath 2.0 中使用 RegX 通常会更高效:
replace('abc123def590xyz', '[^\d]', '')
如果您可以保证非数字字符将只是小写字母(如您的示例中),您可以在 XPath 1 中执行以下操作:
translate($myString, 'abcdefghijklmnopqrstuvwxyz', '')
您可以根据需要将其他字符添加到字母字符串中。
在 XPath 2 中,您可以使用正则表达式:
replace($myString, '[^0-9]', '')