我有一个字符串 A_B_C_D_E_F_G,想要用一些正则表达式得到所有的字符串 A、B... 并储存在数组中。我尝试过:
然而,这似乎只存储最后一次重复。是否有一种方法可以在单个正则表达式中获取它们所有的重复,如果没有,我应该使用什么?此外,我正在使用C++进行操作。
((.*?)_)+
然而,这似乎只存储最后一次重复。是否有一种方法可以在单个正则表达式中获取它们所有的重复,如果没有,我应该使用什么?此外,我正在使用C++进行操作。
看起来你正在使用std::regex_match
你可以使用std::regex_search
或std::regex_iterator
来完成你想要的操作(使用正则表达式([^_]+)
)
((.*?)_)+
无法匹配 A_B_C_D_E_F_G
。 - apple applestd::regex_search
和 ([^_]+)
不适合你的需求。 - apple appleregex_match
和regex_search
之间会有太大的区别。 - apple apple
_+
来收集不匹配的块,或者使用[^_]+
来收集匹配的块。 - Wiktor Stribiżew