EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Regular Expressions in C++

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » Regular Expressions in C++

Regular Expressions in C++

Introduction to Regular Expressions in C++

Regular Expressions in C++ are an important part of programming which helps is finding a pattern that consists of a sequence of characters. It is also known as “ Regex “ and it is used to define a pattern that can be used in string searching algorithms. They can also be used to denote a string syntax. Each and every regular expression character will have a character or metacharacter with a meaning. Regex is a standardised method for a matching sequence of characters with patterns. Different types of Regular Expression can be performed using functions as well as iterators.

Functions of Regular Expressions in C++

Let’s have a look at the syntax for Regex in programming through function templates :

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

1. regex_search()

With the help of this function we can search for a pattern in a string that matches the given regular expression in the code.

Here is the C++ code to demonstrate the working of regex_search() function :

#include <iostream>
#include <regex>
#include<string.h>
using namespace std ;
int main()
{
string search_string = " Hello! Welcome to EDUCBA, Learn with the best " ;
regex regular_exp( "l[a-z_]+" ) ;
smatch sm ;
regex_search( search_string , sm , regular_exp ) ;
cout << " Given below string matches with the given pattern : " << endl ;
for ( auto i : sm )
cout << i << " " ;
return 0 ;
}

Output:

Regular Expressions in C++-1.1

As you can see in the above code, we are including an additional header file with name <regex> so that we can use regular expression functionalities in our code. After that, in the main class, we are declaring a string with name “ search_string ” in that we are passing a text statement that can be searched later. Now we declared a regular expression that needs to be searched and the name of the regex is “ regular_exp ” in which we are adding “ l [a-z] ” which means this regular expression will search character “ l ” from the declared string. For matching behavior, we are also declaring a flag with the name “ sm ”. Finally, the regular expression search that will help in finding the search pattern In regular string. Similarly, through out we are displaying the matching pattern and for loop is used to traverse the string character by character.

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,899 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

2. regex_match()

With the help of this function we can match a pattern in a string that matches the given regular expression in the code.

Here is the C++ code to demonstrate the working of regex_match() function:

#include <iostream>
#include <string>
#include <regex>
using namespace std ;
int main () {
if ( regex_match ( "softwareDevelopment" , regex( "(Soft)(.*)" ) ) )
cout << "String:literal => matched\n" ;
const char search_string[] = "SoftwareDevelopmentHelp" ;
string text ( "software" ) ;
regex str_expr ( "(soft)(.*)" ) ;
if ( regex_match (text,str_expr) )
cout << "String:object => matched\n" ;
if ( regex_match ( text.begin() , text.end() , str_expr ) )
cout << "String:range(begin-end)=> matched\n" ;
cmatch cm ;
regex_match ( search_string , cm , str_expr ) ;
smatch sm ;
regex_match ( text ,sm , str_expr ) ;
regex_match ( text.cbegin(), text.cend(), sm, str_expr ) ;
cout << "String:range, size:" << sm.size() << " are the matches\n" ;
regex_match ( search_string, cm, str_expr, regex_constants::match_default ) ;
cout << "The total matches are : " ;
for ( int i = 0 ; i < sm.size() ; ++i ) {
cout << "[" << sm[i] << "] " ;
}
cout << endl ;
return 0 ;
}

Output:

Regular Expressions in C++-1.2

As you can see in the above code, we are including an additional header file with name <regex> so that we can use regular expression functionalities in our code. Therefore, first we are matching the given string “softwareDevelopment” with the regular expression “(“(soft)(.*)” using the regex_match function. After that, we are also demonstrating different variations of regex_match by passing it a string object, range, etc.

3. regex_replace()

With the help of this function we can replace a pattern in a string that matches the given regular expression in the code.

Here is the C++ code to demonstrate the working of regex_replace() function:

#include <iostream>
#include <string>
#include <regex>
#include <iterator>
using namespace std;
int main()
{
string search_string = " Hello! Welcome to EDUCBA, Learn with the best  \n " ;
cout << " Here is the input string: " << search_string << endl ;
regex regexp( "H[a-zA-z]+" ) ;
cout << " Replace the word 'Hello' with word 'Hey' : " ;
cout << regex_replace( search_string , regexp , "Hey" ) ;
string output ;
cout << " Replace the word 'Hey' back to 'Hello' : " ;
regex_replace( back_inserter(output) , search_string.begin() , search_string.end() ,
regexp ,  "Hello" ) ;
cout << output ;
return 0 ;
}

Output:

Regular Expressions in C++-1.3

As you can see in the above code, we are including an additional header file with name <regex> so that we can use regular expression functionalities in our code. After that, in the main class, we are declaring a string with name “ search_string ” in that we are passing a text statement that can be searched later. Then we are using regex to match the string beginning with ‘H’. After that, we are using regex_replace() for replacing the match string with the word ‘Hey’. Then again, we are using regex_replace( ) for replacing the match string back with the word ‘Hello’. In the end, you can see on the output scree that how we have replaced the Hello word with Hey then again we replaced Hey string again with Hello string in the code.

Conclusion

Regular expressions play an important role in programming that helps in saving searching strings texts and patter in large and complex code in a small amount of time with ease. In addition, we can match, replace and search a given string by using regular expression in our code.

Recommended Articles

This is a guide to Regular Expressions in C++. Here we also discuss the Introduction and functions of regular expressions in c++ which includes,regex_search(),regex_match(),etc . You may also have a look at the following articles to learn more –

  1. Abstraction in C++
  2. String in C++
  3. Anagram in C++
  4. Stack in C++

C++ Training (4 Courses, 3 Projects, 4 Quizzes)

4 Online Courses

5 Hands-on Projects

37+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training (4 Courses, 3 Projects, 4 Quizzes) Learn More