在C++中,可以使用regex_match
函數來進行正則表達式匹配。要設置匹配模式,可以使用std::regex_constants::match_flag_type
參數來指定匹配選項。
以下是一些常用的匹配選項:
std::regex_constants::match_default
:默認的匹配選項,不做任何特殊設置。std::regex_constants::match_not_bol
:不匹配字符串的開頭。std::regex_constants::match_not_eol
:不匹配字符串的結尾。std::regex_constants::match_not_bow
:不匹配單詞的開頭。std::regex_constants::match_not_eow
:不匹配單詞的結尾。std::regex_constants::match_any
:匹配任意部分。std::regex_constants::match_not_null
:不匹配空字符串。例如,以下是一個使用regex_match
函數并設置匹配模式的示例:
#include <iostream>
#include <regex>
int main() {
std::string str = "Hello World";
std::regex pattern("Hello");
std::smatch match;
if (std::regex_match(str, match, pattern, std::regex_constants::match_not_bol)) {
std::cout << "Match found!" << std::endl;
} else {
std::cout << "No match found." << std::endl;
}
return 0;
}
上面的示例中,我們使用std::regex_constants::match_not_bol
選項來指定不匹配字符串的開頭。如果字符串不以"Hello"開頭,則不會輸出"Match found!"。