У меня есть тысячи файлов в каталоге, в котором я запускаю пакетный скрипт для обработки.лимитированные имена файлов, которые начинаются определенным образом
Соответствующие файлы все не начинаются с XX-XX-XX (по крайней мере, одно целое, но не более чем два, с подчеркивания разделения трех чисел)
Я использовал txt2re создать это:
$txt='1-2-3';
$re1='(\\d+)'; # Integer Number 1
$re2='(-)'; # Any Single Character 1
$re3='(\\d+)'; # Integer Number 2
$re4='(-)'; # Any Single Character 2
$re5='(\\d+)'; # Integer Number 3
if ($c=preg_match_all ("/".$re1.$re2.$re3.$re4.$re5."/is", $txt, $matches))
{
$int1=$matches[1][0];
$c1=$matches[2][0];
$int2=$matches[3][0];
$c2=$matches[4][0];
$int3=$matches[5][0];
print "($int1) ($c1) ($int2) ($c2) ($int3) \n";
}
Возможно ли получить немного более компактную версию этого, что я могу сравнить с именем файла в одной функции.
Я не уверен, что вы пытаетесь сделать здесь. Вам нужен булевский тест или что-то еще? В любом случае правильное регулярное выражение будет '^ \ d {1,2} - \ d {1,2} - \ d {1,2}'. – Jon