我似乎无法找出正确的正则表达式(java 样式)来提取这些字符串的版本部分
EXPECTATION
spring-aop-4.2.5.RELEASE.jar -> 4.2.5
rumi-1.js -> 1
BouncyCastle-Net-12-1.dll -> 12-1
使用以下 java 正则表达式,我在行尾不断得到一个句点
\\b\\d[\\d|\\.|\\-]*\\b
任何人都可以建议一个更好的正则表达式?
FAULTY_RESULT
spring-aop-4.2.5.RELEASE.jar -> 4.2.5.
rumi-1.js -> 1.
BouncyCastle-Net-12-1.dll -> 12-1.
数字,后跟零个或多个点/破折号和数字,前面没有单词字符:
(?<!\w)\d+([.-]\d+)*
在java中,它可以在一行中完成:
String version = packageName.replaceAll(".*?((?<!\\w)\\d+([.-]\\d+)*).*", "$1");
在这里,当正则表达式匹配整个输入时捕获目标术语,替换术语返回目标(通过捕获的组)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句