我想接受來自用戶的任意正則表達式,並將其錨定在雙方以強制完全匹配(^<user's-regex>$
),但我不知道是否必須考慮事實:用戶可能已經錨定了他的正則表達式。雙重錨定正則表達式
它看起來像Perl,C++,.NET和JavaScript都允許雙重多重錨定。
"hello" =~ /^h/ # true
"hello" =~ /^^h/ # true
"hello" =~ /^^^h/ # true
"hello" =~ /e/ # true
"hello" =~ /^e/ # false
"hello" =~ /^^e/ # false
有誰知道這是否被指定以這種方式工作?我可以依靠這種行爲嗎?或者這是一種事故,將來有可能發生變化?
編輯:需要我們這樣做的原因是,我們正在使用VBScript的正則表達式的(從COM),我們使用match
然而,這將返回所有比賽所以它要慢得多字符串abc
匹配.*a.*
比^.*a.*$
。通過使用@Tim建議的錨定,我們的速度匹配(對於長字符串)大於12倍。
你爲什麼需要這個? – SilentGhost 2010-07-26 10:57:56