Parsing the content of a string using regular expressions
In the previous recipe, we have looked at how to use std::regex_match()
to verify that the content of a string matches a particular format. The library provides another algorithm called std::regex_search()
that matches a regular expression against any part of a string, and not only the entire string as regex_match()
does. This function, however, does not allow searching through all the occurrences of a regular expression in an input string. For this purpose, we need to use one of the iterator classes available in the library.
In this recipe, you will learn how to parse the content of a string using regular expressions. For this purpose, we will consider the problem of parsing a text file containing name-value pairs. Each such pair is defined on a different line having the format name = value
, but lines starting with a #
represent comments and must be ignored. The following is an example:
#remove # to uncomment the following lines...