Date: 2012oct2
Update: 2026aug18
Language: perl, php, Java
Q. regex: How to protect a string that is going to be used in a regular expression?
A. In perl:
$person_name = 'John Smith';
$ok_for_pattern = quotemeta($person_name);
# Now you can use it in a pattern without fear of it having meta characters, eg:
$pattern = '^' . $ok_for_pattern . '$';
In PHP:
<?php
$person_name = 'John Smith';
$ok_for_pattern = quotemeta($person_name);
$pattern = '/^' . $ok_for_pattern . '$/';
?>
In Java:
import java.util.regex.Pattern;
static void main() {
final String personName = "John Smith";
final String okForPattern = Pattern.quote(personName);
final Pattern pattern = Pattern.compile("^" + okForPattern + "$");
}