ipr*_*esy 6 php string numeric callback preg-match-all
我有兴趣实时替换数字匹配并将它们操作为十六进制.
我很想知道是否可以不使用foreach循环.
所以...
两者之间的一切 :
= {数值} ;
将被归为:
= {十六进制数值} ;
preg_match_all('/\=[0-9]\;/',$src,$matches);
Run Code Online (Sandbox Code Playgroud)
是否有任何回调preg_match_all所以不是预先形成一个循环,我可以在preg_match_all捕获每个匹配(实时)时立即操作它们.
这不是正确的语法,但你可以得到这个想法:
preg_match_all_callback('/\=[0-9]\;/',$src,$matches,{convertAll[0-9]ToHexadecimal});
Run Code Online (Sandbox Code Playgroud)
你可以将它们与正则表达式匹配/=\d+?;/,然后你的回调看起来像......
function($matches) { return dechex($matches[1]); }
Run Code Online (Sandbox Code Playgroud)
结合起来,它给了我们......
preg_replace_callback('/=(\d+?);/', function($matches) {
return dechex($matches[1]);
}, $str);
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用正向lookbehind/forward来匹配分隔符,然后'dechex'直接作为回调传递.
| 归档时间: |
|
| 查看次数: |
4538 次 |
| 最近记录: |