簡體   English   中英

Regex.IsMatch - 沒有實現匹配

[英]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.StringStartsWith方法,如下所示:

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.

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