要匹配字符串 "NIC_25G_TEMP"
、"NIC_100G_TEMP"
和 "NIC_200G_TEMP"
,您可以使用适当的正则表达式来捕获这些模式。
正则表达式
下面是一个适合于您的需求的正则表达式:
std::regex nicPattern("NIC_(\\d+G)_TEMP");
解释
NIC_
:字面量字符 “NIC_“,表示前缀。(\\d+G)
:\\d+
表示一个或多个数字。G
是字母 G,用于指明后缀为 G(如 25G、100G 等)。- 括号用于捕获这一部分,以便稍后提取具体的数字和单位。
_TEMP
:字面量字符 “_TEMP”,表示后缀。
示例代码
以下是一个完整的示例程序,该程序使用上述正则表达式来查找并打印所有匹配项:
#include <iostream>
#include <string>
#include <regex>
int main() {
std::string input = "Some data: NIC_25G_TEMP, NIC_100G_TEMP, NIC_200G_TEMP.";
std::regex nicPattern("NIC_(\\d+G)_TEMP");
std::smatch match;
// 使用 regex_search 查找匹配项
auto search_start = input.cbegin();
while (std::regex_search(search_start, input.cend(), match, nicPattern)) {
std::cout << "Found NIC: " << match[0] << ", Speed: " << match[1] << '\n';
search_start = match.suffix().first; // 移动到下一个匹配位置
}
return 0;
}
输出结果
运行此程序将输出:
Found NIC: NIC_25G_TEMP, Speed: 25G
Found NIC: NIC_100G_TEMP, Speed: 100G
Found NIC: NIC_200G_TEMP, Speed: 200G
总结
在这个示例中,我们定义了一个正则表达式用于匹配特定格式的字符串,并利用 C++ 的正则表达式库进行搜索。通过捕获组,您还可以轻松地提取速度信息。如果您有其他问题或者需要进一步的信息,请随时问我!
内容由零声教学AI助手提供,问题来源于学员提问