簡體   English   中英

C#如何根據<>字符分割字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM