我有一个 php 文件,它根据用户点击的链接将用户重定向到正确的用户手册。由于我们有很多手册(有些是旧版本,我们需要与最新版本相匹配),因此我不得不使用REGEX来查找我想要的内容。
让我们以水果为例。在商店中,我们有可能看起来像这样的手册名称:
$manuals = [
'dc-cn-13apple-frv4-5.pdf',
'dc-cn-33_banana-strawberryv10-108.pdf',
'dc-cn-32peachenv10-125.pdf',
'dc-cn-23lemoncoconutwatermelonitv09-130.pdf'
];
所以有很多可能的组合,重要的是它们总是以'dc-cn-'开头,然后是一个对我们很重要的2位数(就像水果的参考)。
它继续用一些词来描述水果,紧接着是 2 个字母以了解手册的语言,以及“v08”或“v10”以了解版本。有时,版本的这两个字母和数字带有破折号(如“-frv4”)。
最后,它们总是以一个随机的 3 位数字(由我们使用的 CMS 自动给出)结尾,后跟“.pdf”。
我试图像这样操作我的数组:
foreach ($manuals as $manual) {
if(preg_match('/^[0-9][0-9][\.]pdf$/', $manual)) {
echo 'OK';
}
}
但到目前为止,我的 REGEX 不匹配任何东西,我真的觉得我不知道我在做什么。
能够检查第一个数字('dc-cn- 32 ','dc-cn- 13 '),单词末尾的2个字母('- fr v4','peach en V10'或'瓜它v09-130.pdf'),以及最后3位数字( 'melonitv09- 130 .PDF')。
然后我会preg_split全部并开始比较。
慕田峪9158850