在正则表达式匹配中匹配变量内容不起作用

时间:2014-03-08 10:34:41

标签: regex perl pattern-matching

我有一个下面的代码片段,我想在文件名列表中使用完整路径匹配文件名(带.cpp或.hpp或.h或.c)后缀,并输出那些与另一个匹配的文件文件。 这里 fh_full_path_file_list - 是具有完整路径的文件的文件句柄 例如,文件的内容如下。

--
E:\P4\NTG5\ONOFF\imp/ntg5/onoff/HeadSystem/OnOffMOSTLogDev/private/COnOffMostComHUComponent.cpp
E:\P4\NTG5\ONOFF\imp/ntg5/onoff/HeadSystem/OnOffMOSTLogDev/private/COnOffMostComHUImpl.cpp
E:\P4\NTG5\ONOFF\imp/ntg5/onoff/HeadSystem/Executor/src/ntg5-starter.hpp
--

fh_file_name_list - 是仅包含文件名的文件的文件句柄。

对于例如内容如下

DSIDTimeMngRootAttrMoCCAStream.cpp  
DTimeMngRootAttr.hpp  
DTimeMngRootAttr.hpp 

匹配表达式m / Q $ search_string即使存在匹配的文件名也不起作用。

- 代码段 -

while ($a_file_name = <$fh_file_name_list>) {

    #search for file name in full_path_file_list.txt
    while ($a_full_path_file_name = <$fh_full_path_file_list>) {

        my $text_to_search  = $a_full_path_file_name;
        my $search_string = $a_file_name;
        if($text_to_search =~ m/\Q$search_string/) {
            print $fh_onoff_target_file_list "$a_full_path_file_name \n";
          }
    }
}

0 个答案:

没有答案