我有这段代码。RegEx处理字母数字输入 - PHP
<?php
$USClass = "3/312";
$USClass = preg_replace_callback('~[\d.]+/[\d.]+~', function ($matches) {
$parts = explode('/', $matches[0]);
return $parts[1] . ',' . $parts[0];
}, $USClass);
echo $USClass;
?>
它打印312,3这是我想要的。
但是,如果我给出像D12/336这样的输入,那么它不起作用。我想要它打印336,D12
我该怎么办?我的当前代码不能处理这个字母数字有什么问题?是因为我用了\ d吗?
编辑:
我希望它处理的输入,这样也
148/DIG.111
那么输出应该是DIG.111,148
太好了!此代码有效! '<?php \t $ USClass =“148/DIG.111”; \t $ USClass = preg_replace_callback('〜[\ w。] +/[\ w。] +〜',function($ matches){ \t $ parts = explode('/',$ matches [0]); \t return $ parts [1]。','。$ parts [0]; \t},$ USClass); \t echo $ USClass; ?>' –
@Bhavani Kannan我用Unicode解决方案更新了我的答案。我认为'\ w'只会覆盖ASCII字母。 – stema
@Bhavani Kannan我用一个更好的解决方案再次更新了我的答案。 – stema