0

How to add double \ using preg_replace

Code i am using:

function escape_sql_regexp( $str ) {
    return preg_replace('/[+*?[\\^\\]$(){}=!|:,]/', '\\\${0}', $str);
}

echo escape_sql_regexp( '(541) 754-3010' );

Outputs: \(541\) 754-3010
Expected double slash output: \\(541\\) 754-3010

Please let me know if its possible.

cipriano
  • 111
  • 2
  • 11

1 Answers1

3

Yes it is possible but you need to add more slashes

<?php

function escape_sql_regexp( $str ) {
    return preg_replace('/[+*?[\\^\\]$(){}=!|:,]/', '\\\\\\\\${0}', $str);
}

echo escape_sql_regexp( '(541) 754-3010' );

https://3v4l.org/r8pAS

mleko
  • 11,650
  • 6
  • 50
  • 71