c++ - 使用正则表达式查找多个字符串的第一个实例

标签 c++ regex

假设我有一个包含“ATGTTTGGATTAGGTAATGAAT”的字符串。

我想在字符串中搜索“TAG”、“TAA”或“TGA”的第一个实例。

为此,我想使用正则表达式。我认为 std::regex_search 会起作用,但我不确定如何编写语法。

任何帮助将不胜感激。

编辑:我需要检索“TAG”、“TAA”或“TGA”的第一个实例的位置(以先到者为准)。

最佳答案

你可以试试这个:

#include <iostream>
#include <regex>

int main() {
    std::string s("ATGTTTGGATTAGGTAATGAAT");
    std::regex r("TAG|TAA|TGA");
    std::sregex_iterator first(s.begin(), s.end(), r);
    std::cout << "position: " << first->position() << std::endl; // position: 10
    return 0;
}

文档在这里:http://en.cppreference.com/w/cpp/regex

关于c++ - 使用正则表达式查找多个字符串的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19967933/

相关文章:

c++ - boost::multi_index_container:检索结束迭代器时出现问题

c++ - C++ 中不同大小的不同行为(Firebreath 源代码)

python - 使用正则表达式来匹配顺序无关的字符组(在子字符串中)同时限制给定字符可以出现的次数的优雅方法?

php - 将目标属性添加到 html 链接

java - 删除所有匹配正则表达式模式的单词

c++ - 语法错误 : missing ';' before identifier

c++ - 在wxWidgets Mac版本(wxMac)上,我需要修改的setup.h文件在哪里?

c++ - 调试庞大的功能

php - 在 PHP 中使用 DOMDocument 的正则表达式

c++ - 索引文件名及其内容