簡體   English   中英

PHP中的正則表達式二進制模式搜索

[英]Regex Binary Pattern Search in PHP

我正在嘗試查找和替換字符串中的二進制值:

$str = '('.chr(0x00).chr(0x91).')' ;
$str = preg_replace("/\x00\x09/",'-',$str) ;

但我收到“警告:preg_replace():正則表達式中的空字節”錯誤消息。

如何在 Regex/PHP 中處理二進制值?

這是因為您在正則表達式模式周圍使用雙引號" ,這使 php 引擎解析字符\\x00\\x09

如果您改用單引號,它將起作用:

$str = '(' . chr(0x00) . chr(0x91) . ')' ;
$str = preg_replace('/\x00\x09/', '-', $str) ;

但是,如果我正確理解您的問題,您的正則表達式似乎也不正確。 如果您想用破折號-替換字符\\x00\\x91 ,則必須將它們放入方括號[]

$str = preg_replace('/[\x00\x91]/', '-', $str) ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM