我想驗證Excel工作表公式中的單元格引用。如何驗證包含工作表名稱的Excel單元格引用?
有效的字符串:
Sheet1!A1
'Sheet!!'!A1
我使用下面的表達式,但它無法正常工作。
"^='?[^[]/\*]*'?!+[A-Z]+[0-9]+$"
我想驗證Excel工作表公式中的單元格引用。如何驗證包含工作表名稱的Excel單元格引用?
有效的字符串:
Sheet1!A1
'Sheet!!'!A1
我使用下面的表達式,但它無法正常工作。
"^='?[^[]/\*]*'?!+[A-Z]+[0-9]+$"
哦還有一些問題。 ?
它現在
^='?[^/\[]*]*'?!{1}[A-Z]+[0-9]+$
工作這個應該工作: =(\ S | \ W)+ [A-ZA-Z] + \ d +
Regex re = new Regex(@"^=('?[^']+'?|[^!]+)![A-Z]+[0-9]+$");
bool isOk = re.IsMatch("=Sheet1!A1");
更改! [^!]
表示表單名稱中不需要的任何字符。
它將匹配任何格式爲='<anything>'!XN
或=<anything>!XN
其中X至少爲一個大寫字母,而N至少爲一位。
編輯: 我不知道,如果想OP在啓動或不=
字符(原帖有它)。如果您不這樣做,請從正則表達式的開頭刪除=
字符。
你可以發佈你的代碼嗎? – 2011-02-08 11:09:12
我們有兩種主要的正則表達式問題:「請發送正則表達式codez」和「正則表達式不工作」。讓我們把它變成第三種。它無法匹配有效的輸入嗎?它接受一些無效的輸入嗎?哪個? 「不工作」不是問題描述。 – 2011-02-08 11:10:50
什麼是雙引號?他們是正則表達式的一部分嗎?他們是字符串分隔符嗎?如果它們是字符串分隔符,則應該使用逐字字符串而不是常規字符串。在編寫路徑和正則表達式時,人們甚至不會考慮它:從一開始就逐字串。您不應該使用JavaScript正則表達式驗證程序來測試.NET正則表達式。正則表達式根據平臺/語言/庫而有各種不同的風格。要驗證.NET正則表達式,您應該使用.NET。我建議你試試[LinqPad](http://www.linqpad.net/)。 – 2011-02-08 11:16:31