2011-02-08 74 views
2

我想驗證Excel工作表公式中的單元格引用。如何驗證包含工作表名稱的Excel單元格引用?

有效的字符串:

  1. Sheet1!A1
  2. 'Sheet!!'!A1

我使用下面的表達式,但它無法正常工作。

"^='?[^[]/\*]*'?!+[A-Z]+[0-9]+$" 
+1

你可以發佈你的代碼嗎? – 2011-02-08 11:09:12

+2

我們有兩種主要的正則表達式問題:「請發送正則表達式codez」和「正則表達式不工作」。讓我們把它變成第三種。它無法匹配有效的輸入嗎?它接受一些無效的輸入嗎?哪個? 「不工作」不是問題描述。 – 2011-02-08 11:10:50

+0

什麼是雙引號?他們是正則表達式的一部分嗎?他們是字符串分隔符嗎?如果它們是字符串分隔符,則應該使用逐字字符串而不是常規字符串。在編寫路徑和正則表達式時,人們甚至不會考慮它:從一開始就逐字串。您不應該使用JavaScript正則表達式驗證程序來測試.NET正則表達式。正則表達式根據平臺/語言/庫而有各種不同的風格。要驗證.NET正則表達式,您應該使用.NET。我建議你試試[LinqPad](http://www.linqpad.net/)。 – 2011-02-08 11:16:31

回答

1

哦還有一些問題。 ?

它現在

^='?[^/\[]*]*'?!{1}[A-Z]+[0-9]+$ 
0

工作這個應該工作: =(\ S | \ W)+ [A-ZA-Z] + \ d +

3
Regex re = new Regex(@"^=('?[^']+'?|[^!]+)![A-Z]+[0-9]+$"); 
bool isOk = re.IsMatch("=Sheet1!A1"); 

更改! [^!]表示表單名稱中不需要的任何字符。

它將匹配任何格式爲='<anything>'!XN=<anything>!XN其中X至少爲一個大寫字母,而N至少爲一位。

編輯: 我不知道,如果想OP在啓動或不=字符(原帖有它)。如果您不這樣做,請從正則表達式的開頭刪除=字符。

相關問題