繁体   English   中英

无法提取两个字符之间的值

[英]Unable to extract value between two characters

我正在尝试使用许多在线示例来获取_和之间的数字. 无论出于何种原因,它都会简单地输出空字符串。

串:

/chat_3.txt

我希望能够提取其中的数字,即上面的字符串中的3 ,该怎么做?

我尝试如下,但它给出了空的输出​​:

$s = '/chat_3.txt';
$matches = array();
$t = preg_match('/_(.*?)\./s', $s, $matches);

然后,将输出写入Joomla中的文件,如下所示:

$file = __DIR__ . '/file.txt';
JFile::write($file, $matches[1]);

编辑

实际上,我通过了数组而不是字符串。

所以,真正的问题是

我通过数组而不是字符串

如果您需要从的最后一次出现中提取数字. + digits + . ,您可以使用preg_filter函数轻松实现:

$s = array('/chat_3.txt', '/chat_old.txt', '/chat_15.txt');
$matches = array();
$t = preg_filter('/.*_(\d+)\..*/s', '$1',$s);
print_r($t);

参见PHP演示

preg_filter将仅返回找到匹配项的那些值。 替换后的值将被返回。 因此, .*_(\\d+)\\..*将尽可能匹配任何0+个字符,直到最后_ + 1个或多个数字(捕获到组1)+中. +直到字符串末尾的零个或多个字符,并将全部替换为第1组中的数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM