Как получить только числа из строки с XPath
У меня есть строка, которая содержит цифры. Возможно ли только с XPath, что я получаю только цифры от него?
например: myString= "abcd12ef34gh567", результат: 1234567
2 ответов
использовать:
translate(., translate(.,'0123456789',''), '')
Это так называемый метод "двойного перевода", впервые предложенный @Michael Kay и может использоваться как в XPath 1.0, так и в XPath 2.0.
конечно, в XPath 2.0 использование RegeX обычно будет более эффективным:
replace('abc123def590xyz', '[^\d]', '')
Если вы можете гарантировать, что символы без цифр будут только строчными буквами (как в вашем примере), вы можете сделать следующее В XPath 1:
translate($myString, 'abcdefghijklmnopqrstuvwxyz', '')
вы можете добавить другие символы в строку алфавита по мере необходимости.
в XPath 2 Вы можете использовать регулярное выражение:
replace($myString, '[^0-9]', '')