我正在尝试以特定方式拆分一串二进制数字
假设这是我的字符串 100011001110010101110
我想在1之前每隔0分割字符串
所以分割后上面的字符串变成
1000 1100 11100 10 10 1110
我使用了/(1+0+)/g正确拆分字符串的 Regex 模式,但它错过了一些组。这是c#代码
Regex.Split(stringToSplit, @"(1+0+)");
Run Code Online (Sandbox Code Playgroud)
请问我哪里错了。
编辑:我忘了,我敢肯定一个1将总是先一0
提前致谢。
你可以尝试寻找未来和落后,即洒在零长度的文本与0 落后分裂和1 未来它
代码:
string source = "100011001110010101110";
var result = Regex.Split(source, "(?<=0)(?=1)");
// Let's have a look
Console.Write(string.Join(Environment.NewLine, result));
Run Code Online (Sandbox Code Playgroud)
结果:
1000
1100
11100
10
10
1110
Run Code Online (Sandbox Code Playgroud)
编辑:模式(?<=0)(?=1)解释:
(?<=0) - 0 should be behind the split
- empty; split on epmty (zero-length) text
(?=1) - 1 should be ahead of the split
Run Code Online (Sandbox Code Playgroud)
所以我们有
1000 110011
^^^
|||- 1 should be ahead of split
||-- split here
|--- 0 should be behind the split
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |