0
我嘗試用源驗證輸入'3a'
爲正則表達式'[_a-zA-Z][_a-zA-Z0-9]*'
:德爾福TRegEx錯誤?
len := TRegEx.Create([_a-zA-Z][_a-zA-Z0-9]*).Match('3a').Length;
我預計0
爲len
變量,但它是2
。那是對的嗎?
我嘗試用源驗證輸入'3a'
爲正則表達式'[_a-zA-Z][_a-zA-Z0-9]*'
:德爾福TRegEx錯誤?
len := TRegEx.Create([_a-zA-Z][_a-zA-Z0-9]*).Match('3a').Length;
我預計0
爲len
變量,但它是2
。那是對的嗎?
這不是你真正的代碼。一開始它不會編譯。你省略了引號。如果我們解決這個問題,那麼我們有:
len := TRegEx.Create('[_a-zA-Z][_a-zA-Z0-9]*').Match('3a').Length;
但是,如您所述,返回值1而不是2。此返回值是正確的,因爲a
匹配[_a-zA-Z]
,然後輸入字符串結束。
我希望你有錯誤的正則表達式。也許你應該使用
^[_a-zA-Z][_a-zA-Z0-9]*$
的^
輸入字符串的開頭匹配,$
MATHES結束。推測該輸入來自源代碼標記器。
所以結論是,在這個模式和輸入的Delphi正則表達式代碼中沒有明顯的錯誤。
一旦我遇到了問題,並想「嘿,我可以使用正則表達式來解決這個問題」。然後,我有兩個問題。 – 2012-03-30 17:25:29