[英]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.