Bla*_*ack 1 php regex preg-replace
怎样才能用preg_replace在95040只保留第一个字符?
这是我的尝试,应该像我的在线正则表达式所示那样工作
但我拿回了原来的字符串。
$re = '/(^\d{1})/m';
$str = '9100';
$str = preg_replace($re, '$1', $str);
echo $str; //returns 9100
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
更新
我注意到以下代码返回9-->100而不是9:
$re = '/(^\d)/';
$str = '9100';
$str = preg_replace($re, '$1-->', $str);
echo $str; //returns 9-->100
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况以及如何预防?
简单地做:-
$str = $str[0];
Run Code Online (Sandbox Code Playgroud)
如果你愿意preg_replace()的话:-
<?php
$re = '/(^\d).*/s';
$str = '9100';
$str = preg_replace($re, '$1', $str);
echo $str;
Run Code Online (Sandbox Code Playgroud)