代碼看起來很愚蠢,每次調用時都會預編譯正則表達式,並丟棄局部變量。這個塊似乎會造成一些延遲。有沒有更好的方法來做到這一點?正則表達式優化
public const string REGEX_NUMERIC = @"^\-?\(?([0-9]{0,3}(\,?[0-9]{3})*(\.?[0-9]*))\)?$";
public static bool IsExactMatch(string input, string pattern)
{
if (IsEmpty(input)) return false;
System.Text.RegularExpressions.Match m = System.Text.RegularExpressions.Regex.Match(input, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
if (!m.Success) return false;
return m.Groups[0].Value == input;
}
你不能簡單地添加一個'^'和'$'到模式,所以它只能匹配*完整的輸入*?也就是說,匹配必須在輸入開始時開始,並在輸入結束時結束。 –
請不要刪除舊的問題並重新發布相同的問題。正如前面提到的,如果僅僅使用一次,那麼編譯正則表達式就沒有意義。 – keyboardP