我有一个二进制字符串。有没有办法找到使用正则表达式用0
包围的所有1
字符串?
例如:给定字符串10010001
,结果应为两个匹配项:00
和000
。
我尝试了1(0+)1
模式,但只返回00
。我想是的,因为在给定的示例中,它无法处理1
和00
之间的公共符号000
。
答案 0 :(得分:2)
使用lookarounds。
(?<=1)0+(?=1)
由于lookarounds不匹配任何单个字符,您应该获得两个匹配。
或
您可以使用两者中的任何一个(前瞻或后瞻)。在下面的例子中,我使用了积极的前瞻。
1(0+)(?=1)
从组索引1中获取所需的字符串。