我如何使用变量值进行正则表达式分割?

Ang*_*ker 0 .net c# regex

我有以下字符串:

21>请具体说明.你是什​​么意思?21>你好,那里623>西蒙?

我想把它分成:

21>Please be specific. What do you mean by that?
21>Hello are you there
623>Simon?
Run Code Online (Sandbox Code Playgroud)

基本上,拆分器是数值(在这种情况下为21和623),后跟>.

我的实现是我找到了>char,然后向后走,直到找到非数字值.

所以基本上使用sub-string等.但它很难看,而且我确信有更好的Regex实现,但我对此并不了解.

那么可以在这里使用正则表达式吗?

juh*_*arr 5

您可以通过向前看并向后看来实现这一目标,这样您的匹配就是您想要拆分的零长度区域.

string s = "21>Please be specific. What do you mean by that?21>Hello are you there623>Simon?";
Regex reg = new Regex(@"(?<=\D)(?=\d+>)");
var r = reg.Split(s);
foreach(var i in r)
    Console.WriteLine(i);
Run Code Online (Sandbox Code Playgroud)

会输出

21>请具体说明.你是什​​么意思?

21>你好,你在那里

623>西蒙?