Как получить только числа из строки с 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]', '')