2010-02-08 43 views
9

Câu hỏi thực sự đơn giản: làm thế nào tôi có thể preg_replace ký tự dấu gạch chéo ngược?PHP preg_replace

+0

Cảm ơn sự giúp đỡ tất cả :) –

Trả lời

14

Có, nhưng bạn cần phải thoát khỏi nó. Khi sử dụng nó trong việc sử dụng regexp \\ để sử dụng nó thay thế, hãy sử dụng \\\\ (sẽ biến thành \\ sẽ được hiểu là một dấu gạch chéo ngược đơn).

2

thoát \ với \: \\

preg_replace('/\\/', 'REMOVED BACKSLASH', 'sometest\othertest'); 
6

Bạn cần phải thoát khỏi dấu chéo ngược: \\

Từ manual on preg_replace:

Để sử dụng dấu chéo ngược để thay thế, nó phải được tăng lên gấp đôi ("\\\\" Chuỗi PHP).

Ngoài ra, sử dụng preg_quote để chuẩn bị một chuỗi cho một hoạt động preg_*.

+0

Điều này không hiệu quả đối với tôi. –

+0

@ajk bạn đang sử dụng dấu ngoặc đơn hay dấu ngoặc kép? –

+0

$ the_name = preg_replace ('\\\\', 'u', $ the_name); –

0

Sử dụng nó hai lần, ví dụ: \\

5

Bạn có thể thử

$a = "\\\\"; 
$a = preg_replace('/\\\\/','/',$a); 

Output:

'//' 
0

Mã này làm việc cho tôi

$text = "replace \ backslash"; 
    $rep = ""; 
    $replace_text = preg_replace('/\\\\{1}/',$rep,$text); 
    echo $replace_text; 

Output:

replac e dấu chéo ngược

Các vấn đề liên quan