2013-01-10 44 views
1

如果我的正則表達式模式具有以下形式,那麼regex_search是否與regex_match等同於regex_match:^.......$,即如果我告訴匹配的內容應該在字符串的開頭,並且應該以字符串的結尾?或者還有其他區別嗎?boost regex_match vs regex_search

回答

4

不,它們不是等價的,因爲regex_search中的$匹配行尾,^匹配行開始。 因此,在多行字符串中,regex_search仍然會找到子匹配。 我猜想添加標誌boost :: match_not_eol和boost :: match_not_bol會創建regex_match行爲。

+0

性能也可能有所不同。 'regex_search'可能會嘗試匹配字符串中的每個位置,即使該模式只能在開頭處成功。 'regex_match'知​​道更好。 –