What is equivalent to perl expression: /ing$|ed$|en$/ in boost regular expression? Words end with ing or ed or en should match with reg expression in boost!
views:
128answers:
2The most important difference is that regexps in C++ are strings so all regexp specific backslash sequences (such as \w
and \d
should be double quoted ("\\w"
and "\\d"
)
/^[\.:\,()\'\`-]/
should become
"^[.:,()'`-]"
The special Perl regex delimiter /
doesn't exist in C++, so regexes are just a string. In those strings, you need to take care to escape backslashes correctly (\\
for every \
in your original regex). In your example, though, all those backslashes were unnecessary, so I dropped them completely.
There are other caveats; some Perl features (like variable-length lookbehind) don't exist in the Boost library, as far as I know. So it might not be possible to simply translate any regex. Your examples should be fine, though. Although some of them are weird. .*[0-9].*
will match any string that contains a number somewhere, not all numbers
.