【发布时间】:2013-11-19 10:08:16
【问题描述】:
我有一个字符串
$str = "xxxxxx Code File(s) Name:Some_thing.c CodeFile(s) Version:27 Design Document:some_other_design.doc Module Design Document Version:43 somexxxxxxxxxx Compiler Version:9.5 Doc Type:Word xxxxxx";
其中 xxxxx 代表任何字符。但我只对提取每个属性的值感兴趣。
我想保存
$fileName = Some_thing.c;
$fileVersion = 27;
$designDocName = some_other_design.doc;
$designDocVersion = 43;
$compilerVersion = 9.5;
现在我觉得我的解决方案搞砸了。只是想知道是否有更清洁的方法来做到这一点。如果我有多个具有多个版本的文件,这也可能会失败。
首先我删除所有空格,然后我将字符串分成 2 直到我得到所有值
$str =~ s/\s*//g;
($temp,$temp2) = split(/CodeFile\(s\)Name:/,$str,2);
($fileName,$temp) = split(/CodeFile\(s\)Version:/,$temp2,2);
($fileVersion,$temp2) = split(/DesignDocument:/,$temp,2);
($designDocName,$temp) = split(/DesignDocumentVersion:/,$temp2,2);
($designDocVersion,$temp2) = split(/some/,$temp,2);
($testedCompilerVersion,$temp) = split(/CompilerVersion:/,$temp2,2);
($testedCompilerVersion,$temp2) = split(/DocType:/,$temp,2);
请引导我找到一个链接或有效的解决方案。 提前致谢。
PS:也请查看问题下方的评论。
【问题讨论】:
-
我想通过添加缺少的 xxxx 来编辑我的 $str,我以前不认为它是相关的,但现在它是。 $str = "测试人员姓名:John Smith 代码文件名称:Some_thing.c 代码文件版本:27 设计文档:some_other_design.doc 模块设计文档版本:43 someLevel:2 级编译器版本:9.5 文档类型:Word xxxxxx";;
标签: regex string perl substring