【发布时间】:2021-07-31 21:31:24
【问题描述】:
问题是找到所有在 1 和 0 之间交替的位序列,即连续不超过 1 或 0 的位序列,并将其返回到列表中。
到目前为止我做了什么
public static List<String> findBits(String text) {
Pattern pattern = Pattern.compile("([01])(?!\\1)([01])(?:\\1\\2)*\\1?|(?<!\\S)[01](?!\\S)|1.|0.", Pattern.DOTALL);
Matcher matcher = pattern.matcher(text);
return matcher.results()
.map(String::valueOf)
.collect(Collectors.toList());
它应该返回
这里没有二进制数 3434。-> [] 空列表
嘿,朋友,这是 1。-> [1]
这些是 1001、1010、1011、1100、1101 -> [1010]
这是一个长值 1010101010,这个也是 1010101010101011 -> [1010101010]
0 + 0 也是 0。-> [0,0,0]
【问题讨论】:
标签: java regex regex-lookarounds