不要在这种小事情况下使用正则表达式。例如,您可以编写自己的域分析函数。
/**
* 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