[英]C# how to split a string on the basis of <> character
我想用<>字符分隔文本。
示例假設我有一個字符串
string Name="this <link> is my <name>";
現在我想將其拆分,以便有一個字符串數組,例如
ar[0]="this "
ar[1]="<link>"
ar[2]=" is my "
ar[3]="<name>"
我正在嘗試使用分割功能
string[] ar=Name.Split('<');
我也嘗試過
string[] nameArray = Regex.Split(name, "<[^<]+>");
但這沒有給我
"<link>"
and "<name>"
但這不是一個好方法。
我可以在這里使用正則表達式嗎?
這個
Regex r = new Regex(@"(?<=.)(?=<)|(?<=>)(?=.)");
foreach (var s in r.Split("this_<link>_is_my_<name>"))
{
Console.WriteLine(s);
}
給
this_
<link>
_is_my_
<name>
(下划線用於說明)
正則表達式在零寬度點上分割(因此它不會刪除任何東西),它是:
<
>
,然后是某些內容 如果您的字符串以方括號開頭或結尾,則必須進行“ something”檢查,以避免開頭或結尾出現空字符串。
請注意,諸如"<link<link>>"
會為您提供{ "<link", "<link>", ">" }
因此請嘗試使尖括號平衡。
如果您想要空字符串(如果字符串以<
開頭或以>
結束),則可以使用(?=<)|(?<=>)
。 如果在遇到><
時想要在中間使用空字符串,我認為您需要先分割(?=<)
,然后再分割所有結果(?<=>)
-我認為您無法做到一氣呵成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.