[英]How can I split a regex into exact words?
關於C#中的正則表達式,我需要一些幫助
我有以下字符串
"[[Sender.Name]]\r[[Sender.AdditionalInfo]]\r[[Sender.Street]]\r[[Sender.ZipCode]] [[Sender.Location]]\r[[Sender.Country]]\r"
該字符串也可以包含空格,理論上也可以包含其他任何字符。 所以我真的需要匹配[[words]]。
我需要的是這樣的文本數組
"[[Sender.Name]]",
"[[Sender.AdditionalInfo]]",
"[[Sender.Street]]",
// ... And so on.
我很確定這是完全可行的:
var stringArray = Regex.Split(line, @"\[\[+\]\]")
我太愚蠢,無法為Regex.Split()調用找到正確的Regex。
這里有人可以告訴我在我的情況下使用的正確正則表達式嗎?
如您所知,我對RegEx並不了解:)
為什么不按“ \\ r”分開?
並且您不需要正則表達式,只需使用標准字符串函數
string[] delimiters = {@"\r"};
string[] split = line.Split(delimiters,StringSplitOptions.None);
您正在使用的正則表達式( \\[\\[+\\]\\]
)將捕獲:文字[
s 2或更多,然后是2文字]
s。
甲正則表達式溶液捕捉所有非[
S的內部加倍[
和]
S(並串括號內不應該是空的,我想?),並澆鑄MatchCollection
到列表或陣列(這里是具有列表的示例):
var str = "[[Sender.Name]]\r[[Sender.AdditionalInfo]]\r[[Sender.Street]]\r[[Sender.ZipCode]] [[Sender.Location]]\r[[Sender.Country]]\r";
var rgx22 = new Regex(@"\[\[[^]]+?\]\]");
var res345 = rgx22.Matches(str).Cast<Match>().ToList();
輸出:
如果要獲取[[..]]
塊,請進行匹配。
Regex rgx = new Regex(@"\[\[.*?\]\]");
foreach (Match m in rgx.Matches(input))
Console.WriteLine(m.Groups[0].Value);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.