我很讨厌正则表达式。我有一个 php 函数,它将读取我服务器上的文件名目录,我试图从一个特定的文件名中提取文件名数据,但失败得很惨。到目前为止,这是我所拥有的:
$file = 'VERSION_3.7.1b.txt';
$VersionNumber = preg_match('#^(VERSION_)[^\s]*\.\.[^\s]+(\.(txt))#', $file);
我试图让 preg_match 仅对以“VERSION_”开头并以“.txt”结尾的文件返回 true。中间的东西可能是各种数字、字母、句号……这就是我想要返回的部分。所以在这种情况下,我希望 $VersionNumber 最终设置为 '3.7.1b'
其他会返回某些内容的文件名如下所示:
VERSION_3.txt -> 3
VERSION_3.7.txt -> 3.7
VERSION_3.7e.1.txt -> 3.7e.1
VERSION_2012.09.13.3.7.1b.txt -> 2012.09.13.3.7.1b
VERSION_3.7.20120913.txt -> 3.7.20120913
如果我很接近,任何正则表达式大师都可以向我解释吗?谢谢!