【发布时间】:2020-07-24 20:42:45
【问题描述】:
我有这个目标:
给定字符串:"Part1-part2-part3-part4-part5"
在第二次出现'-'时拆分它,
所以我期待一个数组[ "Part1-part2", "part3-part4-part5" ]
我做了什么:
"Part1-part2-part3-part4-part5".split("(?<=^\\w+-\\w+)-"
但是 jdk 8 上的结果:
它没有找到第二个'-'的匹配,并返回整个字符串。
证据:https://ideone.com/myWppm
但是,当我尝试在线正则表达式处理网站和 node.js(或 chrome)[相信我,现代 js 支持lookbehind]时,结果符合预期。
证据:https://ideone.com/ttQWNr
我现在正在使用的黑客(不符合成为解决方案的条件):
使用前瞻而不是后瞻,从末尾第三次出现“-” "Part1-part2-part3-part4-part5".split("-(?=\\w+-\\w+-\\w+$)");
【问题讨论】:
标签: java regex regex-lookarounds lookbehind