[英]Regex.IsMatch - not achieving match
我有一個列表例如:
Type [data]
Device Type [data]
Pin type [data]
我正在嘗試僅搜索類型[數據]而不是設備類型或引腳類型。 請注意[數據]文本的更改取決於列表。
我目前的代碼:
result = Regex.IsMatch(line1, "\\bType\\b");
我究竟做錯了什么?
使用克拉('^')匹配字符串的開頭。
Regex.IsMatch(line1, @"^Type (.*)$");
如果只需要在字符串的開頭匹配Type
,則根本不需要正則表達式:使用System.String
的StartsWith
方法,如下所示:
if (line1.StartWith("Type ")) {
...
}
你說你有一個清單,但沒有清單。 假設它是一個字符串列表,您可以使用LINQ找到以“Type”開頭的所有字符串:
var matches = data.Where(x => x.StartsWith("Type"));
如果最多只有一個匹配,並且保證在列表中的某個位置,您可以使用:
var matches = data.Single(x => x.StartsWith("Type"));
你的正則表達式\\bType\\b
將在行的開頭,行的結尾和單詞之間尋找Type
的出現。
為了匹配您提到的第一個案例,您可以使用此正則表達式:
result = Regex.IsMatch(line1, @"^Type\b");
現場演示: http : //rubular.com/r/iEiDEhVt5g
使用^
查看行的開頭。 這樣,在單詞之間或最后出現的任何Type
都不會產生匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.