How to Replace a Substring in a String using Regular Expression in C - Step by Step Examples
How to Replace a Substring in a String using Regular Expression in C ?
Answer
To replace a substring in a string using regular expressions in C, you can use the POSIX regular expression library. This involves compiling a regular expression, searching for matches, and performing the replacement.
✐ Examples
1 Replace Substring Matching a Regular Expression in a String
In this example,
- We include the necessary headers
regex.h
for regular expression functions andstring.h
for string handling functions. - We create a function named
replaceRegex
to replace a substring matching a regular expression. - Inside the function, we compile the regular expression using
regcomp
. - We use
regexec
to find the substring that matches the pattern. - If a match is found, we copy the part before the match, add the new substring, and then add the part after the match to the result.
- We return the modified string.
- We call the
replaceRegex
function with the original string, the regex pattern to be replaced, and the new substring. - Finally, we print the modified string to the standard output.
C Program
#include <stdio.h>
#include <string.h>
#include <regex.h>
void replaceRegex(char *str, const char *pattern, const char *replacement) {
regex_t regex;
regmatch_t match[1];
char buffer[256];
char result[256];
char *pos;
regcomp(®ex, pattern, REG_EXTENDED);
if (regexec(®ex, str, 1, match, 0) == 0) {
// Copy the part before the match
strncpy(buffer, str, match[0].rm_so);
buffer[match[0].rm_so] = '\0';
// Add the replacement
strcpy(result, buffer);
strcat(result, replacement);
// Add the part after the match
pos = str + match[0].rm_eo;
strcat(result, pos);
// Copy the result back to the original string
strcpy(str, result);
}
regfree(®ex);
}
int main() {
char str[100] = "The quick brown fox jumps over the lazy dog";
const char *pattern = "[a-z]+";
const char *replacement = "animal";
replaceRegex(str, pattern, replacement);
printf("Modified string: %s\n", str);
return 0;
}
Output
Modified string: Tanimal quick brown fox jumps over the lazy dog
2 Replace Another Substring Matching a Regular Expression in a String
In this example,
- We include the necessary headers
regex.h
for regular expression functions andstring.h
for string handling functions. - We create a function named
replaceRegex
to replace a substring matching a regular expression. - Inside the function, we compile the regular expression using
regcomp
. - We use
regexec
to find the substring that matches the pattern. - If a match is found, we copy the part before the match, add the new substring, and then add the part after the match to the result.
- We return the modified string.
- We call the
replaceRegex
function with the original string, the regex pattern to be replaced, and the new substring. - Finally, we print the modified string to the standard output.
C Program
#include <stdio.h>
#include <string.h>
#include <regex.h>
void replaceRegex(char *str, const char *pattern, const char *replacement) {
regex_t regex;
regmatch_t match[1];
char buffer[256];
char result[256];
char *pos;
regcomp(®ex, pattern, REG_EXTENDED);
if (regexec(®ex, str, 1, match, 0) == 0) {
// Copy the part before the match
strncpy(buffer, str, match[0].rm_so);
buffer[match[0].rm_so] = '\0';
// Add the replacement
strcpy(result, buffer);
strcat(result, replacement);
// Add the part after the match
pos = str + match[0].rm_eo;
strcat(result, pos);
// Copy the result back to the original string
strcpy(str, result);
}
regfree(®ex);
}
int main() {
char str[100] = "The quick brown fox jumps over the lazy dog";
const char *pattern = "quick.*fox";
const char *replacement = "slow tortoise";
replaceRegex(str, pattern, replacement);
printf("Modified string: %s\n", str);
return 0;
}
Output
Modified string: The slow tortoise jumps over the lazy dog
Summary
In this tutorial, we learned How to Replace a Substring in a String using Regular Expression in C language with well detailed examples.
More C Strings Tutorials
- How to Create an Empty String in C ?
- How to get Length of String in C ?
- How to get Character at Specific Index in String in C ?
- How to get First Character in String in C ?
- How to get Last Character in String in C ?
- How to get First N Characters in String in C ?
- How to get Last N Characters in String in C ?
- How to get Substring after Specific Character in C ?
- How to get Substring before Specific Character in C ?
- How to get Substring between two Specific Characters in C ?
- How to get Substring from Specific Index to End in C ?
- How to Iterate over Characters in String in C ?
- How to Iterate over Words in String in C ?
- How to Check if String is Empty in C ?
- How to Check if String contains only Alphabets in C ?
- How to Check if String contains only Alphabets and Numbers in C ?
- How to Check if String contains only Numeric Digits in C ?
- How to Check if a String contains given Substring in C ?
- How to Check if String contains specific Character in C ?
- How to Check if String starts with Specific Prefix in C ?
- How to Check if String ends with Specific Suffix in C ?
- How to Append a String to another String in C ?
- How to Append a Character to beginning of a String in C ?
- How to Append a Character to end of a String in C ?
- How to Concatenate Two Strings in C ?
- How to Repeat a String N Times in C ?
- How to Insert Character at Specific Index in String in C ?
- How to Replace a Substring in String in C ?
- How to Replace Character at Specific Index in String in C ?
- How to Replace All Occurrences of a Substring in a String in C ?
- How to Replace a Substring in a String using Regular Expression in C ?
- How to Split a String in C ?
- How to Split a String by New Line in C ?
- How to Split a String by Comma in C ?
- How to Sort Characters in String in C ?
- How to convert String to Lowercase in C ?
- How to convert String to Uppercase in C ?
- How to Trim a String in C ?
- How to convert First Character in String to Uppercase in C ?
- How to Reverse a String in C ?
- How to Remove Character at specific Index in a String in C ?
- How to Remove First Character in a String in C ?
- How to Remove Last Character in a String in C ?
- How to Remove first N Characters in a String in C ?
- How to Remove last N Characters in a String in C ?
- How to Remove specific Substring in C ?
- How to Remove specific Character from a String in C ?
- How to Remove All Whitespace Characters from a String in C ?
- How to Remove Special Characters from a String in C ?
- How to keep only Alphabets in a String in C ?
- How to Convert Integer to String in C ?
- How to Convert String to Integer in C ?
- How to convert String to Float in C ?
- How to convert Float to String in C ?
- How to check if Two Strings are Equal in C ?
- How to check if Two Strings are Equal ignoring case in C ?
- How to Compare Two Strings in C ?
- How to find the Characters in the First String that are not Present in the Second String in C ?
- How to find the Index of Substring in C ?
- How to find the Index of Last Occurrence of Substring in C ?
- How to find the Indices of All Occurrences of Substring in C ?
- How to get all the possible Substrings of a String in C ?
- How to get all the possible K length Substrings in a String in C ?