不要在這種小事情況下使用正則表達式。例如,您可以編寫自己的域分析函數。
/**
* Parse dimension
*
* @return array [dimX, dimY] or empty array when invalid input
*/
function parse(string $meta): array {
$parseTree = explode('x', strtolower($meta));
if (2 != \count($parseTree)
|| !ctype_digit($parseTree[0])
|| !ctype_digit($parseTree[1])) {
return [];
}
return $parseTree;
}
/**
* Test {@see parse}
* @throws \LogicException When test failed
*/
function testParse() {
$dataProvider = [
['20x50', [20, 50]],
['20X50', [20, 50]],
['20z50', []],
['a20x50', []],
['20xa50', []],
];
foreach($dataProvider as $serie) {
if (parse($serie[0]) != $serie[1]) {
throw new \LogicException('Test failed');
}
}
}
testParse();
如何獲得正則表達式是您的問題?好吧,寫下來。爲此你必須學習正則表達式。你開始這樣做了嗎? – arkascha
請注意,SO不是免費的編碼服務。我們不在這裏爲你做你的工作。我們在這裏幫助您解決您在自己的代碼中遇到的具體問題。所以,如果您遇到嚴重問題,請自己出發,然後_then_是時候來到這裏,發佈您的代碼並指出您遇到的問題。 – arkascha
提示:https://regex101.com和http://php.net/manual/en/function.preg-match.php這並不需要困難的正則表達式。 – Blaatpraat