【发布时间】:2015-01-11 09:48:44
【问题描述】:
我尝试在一个文件中匹配两个字符串并仅返回该行。
第一个字符串将始终匹配我正在寻找的内容,但不完全匹配。
例子:
我可能在 Matchthisstring 中寻找 Matcht,所以我匹配但不是整个字符串。
字符串 1 可能出现在字符串 2 之前或之后,并且可能以大写或小写字母开头。
例子:
我可能实际上正在寻找但实际上有。
但它在一起,我有 Matchthisstring.Actually 或actually.Matchthisstring 或 Matchthisstring.someotherjunkIdon'tcareabout.actually 之类的任何其他组合。
我在同时使用两个搜索字符串和让雷鬼音乐正常工作时遇到问题。
下面是一些有效的代码示例:
my @matches;
while (<$in_fh>) {
#push @matches, $_ if / \Q$wanted\E .* \Q$prefix\E /x;
#push @matches, $_ if / \Q^*(.*)$wanted\s*(.*)\E .* \Q^*(.*)$prefix\s*(.*)\E /x;
push @matches, $_ if / \Q$wanted\E /x;
}
我真正想做的是被注释掉的其他选项之一。我认为我没有正确地将两个搜索合并为一个字符串。
提前感谢您的帮助。
【问题讨论】:
-
不确定你在问什么。请提供一些具有预期输出的示例
-
$wanted中有什么内容?$prefix中有什么内容? -
我愿意学习而不是寻求帮助。我正在编写脚本并在遇到困难时寻求帮助,而不是让人们为我编写脚本。您认为我应该使用哪些好书或在线资源以便我变得更好?我只是想变得更好和学习。
-
@tialin:正如我所说,你忽略了所有的建议,并且似乎正在修补代码部分,希望某些东西可以工作。没有人愿意提供更多建议而被忽略。在 Internet 上搜索 Perl 教程非常简单。如果您在一两年内每天阅读并正确回答 Stack Overflow 上的几个 Perl 问题,那么您可以称自己精通。
-
@Borodin 嗯,这比上一个问题要好得多,因为它的重点是合理的。不一定专注于问题的正确方面,但仍然——更好。感谢您提供指向较早线程的指针。