我想創建一個正則表達式接受某種格式的命令。所述圖案如下:創建正則表達式的麻煩
可以開始與一個$並且具有以下兩個值0-9,AF,AF(即:$ 00 - $ FF) 或 可以是除了任何值「& <>'/ 「
*如果該值以$開始下一兩個值需要從00-FF
到目前爲止,我有這個
Regex correctValue = new Regex("($[0-9a-fA-F][0-9a-fA-F])");
有效的十六進制值之後的任何幫助,將不勝感激!
我想創建一個正則表達式接受某種格式的命令。所述圖案如下:創建正則表達式的麻煩
可以開始與一個$並且具有以下兩個值0-9,AF,AF(即:$ 00 - $ FF) 或 可以是除了任何值「& <>'/ 「
*如果該值以$開始下一兩個值需要從00-FF
到目前爲止,我有這個
Regex correctValue = new Regex("($[0-9a-fA-F][0-9a-fA-F])");
有效的十六進制值之後的任何幫助,將不勝感激!
你只需要在你的「$」加上「\」符號,它的工作原理:
string input = "$00";
Match m = Regex.Match(input, @"^\$[0-9a-fA-F][0-9a-fA-F]$");
if (m.Success)
{
foreach (Group g in m.Groups)
Console.WriteLine(g.Value);
}
else
Console.WriteLine("Didn't match");
好吧,我還加了^和$來標記正則表達式的開始和結束 – horgh 2012-08-01 02:09:29
如果我正確地關注你,你要找的最終結果是不在列表「& <>'/」中的任何值,因爲任何$和兩個字母數字字符的組合也不會是在那個列表中。這樣,就可以使你的表達:
Regex correctValue = new Regex("[^&<>'/]");
更新:但是爲了以防萬一,你需要知道如何正確地匹配$ 00 - $ FF,這會做的伎倆:
Regex correctValue = new Regex("\$[0-9A-Fa-f]{2}");
正則表達式中使用$
爲錨斷言,並表示:
匹配必須發生在字符串的末尾或在行或字符串末尾的\ n之前。
嘗試使用[$]
(Character Class for single character)或\$
(Character Escape)。
我不明白你的問題的這一部分:_可以是除「&<>'/」_以外的任何值。你的意思是它應該匹配任何不在該列表中的單個字符? – 2012-08-01 01:02:14