2009-07-13 152 views
0

我現在對一個明顯很簡單的正則表達式有些困惑,但它肯定是缺乏咖啡因或今天的天氣。基本上我所擁有的是一個可以是'sw'或'ee'或'n.a.'的字符串。.Net正則表達式匹配問題

現在我想要的&需要的是一個regex.match,如果提供的字符串是'n.a.',在所有其他情況下我想要'_'(下劃線+原始值),都會返回''。那可能嗎?

回答

0

下面的正則表達式只會輸出非'n.a'字符串值。

^(?!n\.a).* 
0

您可以使用致電Regex.Replace並使用匹配評估程序委託。基本上:

return Regex.replace(「sw | ee | n \ .a \。」,match => match.Value ==「na」?String.Empty:String.Format(「_ {0}」 ,match.value));

+0

如果您只有數據中的數據,您可能需要使用「^(?: sw | ee | n \ .a \。)$」作爲匹配項。 – 2009-07-13 15:12:13

0

你的問題可能會更清楚一點,但本質上是正則表達式

(資料不詳)|([A-Z] +)

設置了兩個組 - 第一個匹配的 '資料不詳'第二個匹配任何與一個或多個小寫字符。所以,你可以對這個正則表達式進行匹配,看看第一個或第二個組是否是非空的 - 如果第二個組獲得了命中,則預先加上'_'。