我有這段代碼。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