我的数据看起来像这样:
- <value>v13772 @FBst0451145:w<up>1118</up>; P{GD3649}v13772@
- v13773 @FBst0451146:w<up>1118</up>; P{GD3649}v13773@</value>
如何在XPATH中处理此字符串以提取任何和所有@FBst #######数字?
我知道xpath matches()函数…但只返回true或false.如果我想要匹配的字符串,那就不好了.我已经四处寻找但是找不到这个问题的满意答案,这可能很常见.
谢谢!
除了Michael Kay的好答案,如果你只想使用replace()函数,那么使用:
- replace(.,'.*?(@FBst\d+).*','$1')
结果是:
- @FBst0451145
- @FBst0451146
如果您只想要上述结果中的数字,请使用:
- replace(replace(.,'$1'),'[^0-9]+',' ')
这会产生:
- 0451145 0451146