如何删除所有非字母数字字符和前导零
问题描述:
我想使用正则表达式从字符串中删除除字母和数字字符之外的所有内容,并且需要删除所有前导零.
I want to remove everything from a string using regular expression except alpha and numeric characters and I need any leading zero removed.
以下有效但不会删除前导零
The below works but does not remove leading zeros
$string = '00000000A1234567890-=qwesss €#¢∞§¶¶•ªº– ≠≠rtyuuiop[]\';lkjhgfdsazxcvbnm,./';
$pattern = '/([^\da-z]/i)';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);
如何更改模式以删除前导零?
How can i alter the pattern to remove leading Zeros?
答
这个可行:
<?php
$string = '00000000A1234567890-=qwesss €#¢∞§¶¶•ªº– ≠≠rtyuuiop[]\';lkjhgfdsazxcvb00000nm,./';
$pattern = '#^(0*)|([^\da-z])#i';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);
编辑
这个模式也可以简化为:
This pattern can also be simplified to:
$pattern = '#^0+|\W#';