[英]Extracting tokens from a string with regular expressions in .NET
我很好奇這是否可以使用正則表達式。 我想從類似於以下的字符串中提取標記:
Select a [COLOR] and a [SIZE].
好的,很簡單 - 我可以使用(\[[AZ]+\])
但是,我還想提取標記之間的文本。 基本上,我希望上述匹配組為:
"Select a "
"[COLOR]"
" and a "
"[SIZE]"
"."
最好的方法是什么? 如果有辦法用 RegEx 做到這一點,那就太好了。 否則,我猜我必須提取標記,然后手動循環 MatchCollection 並根據每個匹配的索引和長度解析出子字符串。 請注意,我需要保留字符串和標記的順序。 有沒有更好的算法來做這種字符串解析?
使用Regex.Split(s, @"(\[[AZ]+\])")
- 它應該為您提供所需的確切數組。 Split 獲取捕獲的組並將它們轉換為結果數組中的標記。
這是一種不使用正則表達式 ( Regex
) 的方法,它使用String.Split
,但您會丟失分隔符。
string s = "Select a [COLOR] and a [SIZE].";
string[] sParts = s.Split('[', ']');
foreach (string sPart in sParts)
{
Debug.WriteLine(sPart);
}
// Select a
// COLOR
// and a
// SIZE
// .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.