我需要在文件名中找到一个数字。
文件名示例:
_x1984x_testfile.jpg
我需要在“ x”和“x ”括号之间提取字符串(仅当它位于文件名的开头时)
然后检查字符串是否为数字并返回结果(如果是)。 在上面的例子中,代码应返回1984
我该怎么做?
答案 0 :(得分:3)
不需要正则表达式:
$v = explode('x',$string);
if( $v[0] == '_' && is_numeric($v[1]) ) $result = $v[1];
...
如果您对我的假设不满意,您还可以使用strlen()之类的其他if
条件。这种方法比使用正则表达式快得多。
答案 1 :(得分:1)
preg_match("/^_x(\d+)x_/", '_x1984x_testfile.jpg', $matches);
print_r($matches);
答案 2 :(得分:1)
preg_match("/(?<=^_x)\d+(?=x_)/", '_x1984x_testfile.jpg', $m);
print $m[0];
参见演示 here 。