找到&验证字符串中的字符串

时间:2013-11-30 22:56:02

标签: php regex

我需要在文件名中找到一个数字。

文件名示例:

_x1984x_testfile.jpg

我需要在“ x”和“x ”括号之间提取字符串(仅当它位于文件名的开头时)

然后检查字符串是否为数字并返回结果(如果是)。 在上面的例子中,代码应返回1984

我该怎么做?

3 个答案:

答案 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