Regex in PHP to modify strings within a text

✔ Recommended Answer

Poblem with your regex pattern is that it's trying to match the entire line that ends with two line breaks after the roman numeral. Add /s modifier enables dotall mode to match across lines.

$pattern = "/([IVXLCDM]+\.)(.*?)(?=<br><br>)/s";

Replace each matched string with the same string enclosed in tags

$new_string = preg_replace_callback($pattern, function($matches) {    // construct the h4 tag with the matched subtitle    $subtitle = trim($matches[2]);    return "<h4>$matches[1] $subtitle</h4>";}, $string);echo $new_string;
Method #2

Regex, short for regular expression, is a powerful tool used in programming to match and modify patterns within strings. In PHP, you can use the built-in preg_replace() function to replace patterns within strings using regular expressions.

Here's an example of how you can use preg_replace() to modify strings within a text:

$text = "The quick brown fox jumps over the lazy dog."; $modified_text = preg_replace("/\bfox\b/", "cat", $text); echo $modified_text; // Outputs "The quick brown cat jumps over the lazy dog."

In this example, we are using the \b anchor to match the word boundary, which ensures that we only replace the word "fox" and not parts of other words that contain the letters "fox". The preg_replace() function takes three arguments: the regular expression pattern to match, the replacement string, and the original string.

You can use a variety of regular expression patterns to match different types of strings within text. For example, you can use the ^ anchor to match the start of a string, the $ anchor to match the end of a string, and the . character to match any single character.

Here's another example that uses a regular expression to replace all occurrences of a phone number with "XXX-XXX-XXXX":

$text = "Please call me at (555) 123-4567 or 555-765-4321."; $modified_text = preg_replace("/\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}/", "XXX-XXX-XXXX", $text); echo $modified_text; // Outputs "Please call me at XXX-XXX-XXXX or XXX-XXX-XXXX."

In this example, we are using a regular expression pattern to match phone numbers in various formats, such as "(555) 123-4567" and "555-765-4321". The pattern uses character classes and quantifiers to match digits and optional punctuation marks, allowing us to match phone numbers in different formats. The replacement string is "XXX-XXX-XXXX", which will replace all matched phone numbers with this string.


Most Popular

Remove Unicode Zero Width Space PHP

PhpStorm, return value is expected to be 'A', 'object' returned

Laravel file upload returns forbidden 403, file permission is 700 not 755