我需要匹配所有内容而不是白色空间
例如,在此字符串中:16790 - 140416 / 3300
我希望regex(和PHP)在没有空格的情况下得到以下结果:140416/3300
我用过:\s+\d+\s+-\s+(\d+\s+\/\s+\d+)
当然它给了我带空格的结果:
140416 / 3300
如果没有空格,我怎么能得到匹配1的结果?
谢谢
答案 0 :(得分:1)
$subject = "16790 - 140416 / 3300";
$result = preg_replace('%.*?(\d+)\s+/\s+(\d+)%', '$1/$2', $subject);
echo $result;
// 140416/3300
答案 1 :(得分:1)
如果您只是从字符串中删除未知数量的空格和制表符,则可以使用
$result = preg_replace('~\s*~', '', $subject);
如果你匹配你给出的整个模式(不仅仅是除法),你可以使用它:
$result = preg_replace('~(\d+)\s*-\s*(\d+)\s*/\s*(\d+)~', '\1-\2/\3', $subject);
最后,这可能是最好的,如果您想删除运算符周围的空格,例如=,*, - ,/当它们被数字包围时,您可以使用它:
$result = preg_replace('~(\d)\s*([+*/-])\s*(\d)~', '\1\2\3', $subject);