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