[英]How do I regex split with variable values?
我有以下字符串:
21>請具體說明。 您的意思是什么?21>您好嗎623> Simon?
我想將其拆分為:
21>Please be specific. What do you mean by that?
21>Hello are you there
623>Simon?
基本上,分隔符是數值(在這種情況下為21和623),后跟>
。
我的實現是找到>
char,然后返回直到找到非數字值。
所以基本上使用sub-string
之類的。 但這很丑陋,我可以肯定有更好的Regex實現,但是對此我還不夠了解。
那么可以在這里使用正則表達式嗎?
您可以通過向前看和向后看來實現這一目標,這樣您的匹配項就是您要拆分的內容之間的零長度區域。
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);
將輸出
21>請具體說明。 你是什么意思?
21>你好
623>西蒙?
嘗試使用以下正則表達式。 它的零寬度匹配之間something
和number>
正則表達式: (?<=\\D)(?=\\d+>)
替換為\\n
進行演示。
說明:
(?<=\\D)
向后看,看它是否不是數字。
(?=\\d+>)
向前看是否是number>
。
並匹配它們之間的zer0-width
。
試試: [0-9]+>
[0-9]+
至少1位數字
>
隨后>
將匹配項替換為\\n$0
可能會有意義,這會將它們移動到單獨的行中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.