There is a function to use pattern matching (using regular expressions) in C++?

There is a simple C++ method to use pattern matching on strings? The code should sound like this:

if (regexpcmp("l?nole*[0-9]", "linoleum1")) {
  //we have a match!
} else {
   //no match 
}

Answers


Not in the core language. Use Boost.Regex or an external library like pcre. In a unix environment you almost certainly have access to the BSD regular expression tools (regcomp, regerror, regexec, regfree) which are c-like rather than c++-like but do work.


Did you already look at Boost.Regex?

const boost::regex e("l?nole*[0-9]");
if (regex_match("linoleum1", e)) {
  //we have a match!
} else {
  //no match 
}

Take boost.regex friend. if you are not allowed to use boost (sadly, there are still companies doing this), you could look into pcrecpp, which is a C++ binding developed by google for the famous PCRE library.


A standard regex library (that is based on boost::regex) is available in the TR1 namespace if you use lasts versions of the most used compilers : std::tr1::regex.


Need Your Help

json_encode() UTF-8 error

php mysql

I'm having some problem getting text with special characters (Swedish: "åäö") from the database.

Error when trying to create many to many relationship in asp.net

c# asp.net-mvc entity-framework

I have a problem with Asp.Net when I'm trying to create a many to many relationship model, I get this error when trying to register an account :