【发布时间】:2014-07-06 18:01:10
【问题描述】:
我有一个包含一些单词的数组,以及另一个包含单词和同义词的数组。当我在第一个和第二个数组之间找到匹配词时,我想创建第三个数组。我尝试使用 grep 但我无法以正确的方式编写代码以获得我想要的东西。 问题是数组 1 中的元素可以在数组 2 的开头找到,也可以在结尾或中间找到。
举个例子可能会更容易:
@array1 = qw(chose, abstraction);
@array2 = (
"inspirer respirer",
"incapable",
"abstraction",
"abaxial",
"cause,chose,objet",
"ventral",
"chose,objet"
);
应该是这样的结果
@array3 = ("abstraction", "cause,chose,objet", "chose,objet");
使用“grep”是否正确? 我无法编写正确的语法来解决问题.. 谢谢
【问题讨论】:
-
qw(chose, abstraction)与('chose,', 'abstraction')相同。你确定有逗号吗? -
是的,我确定.. 表达式是“选择,抽象”。它取自一个文本文件,该行实际上是“选择,抽象”
-
@Jurafsky: 所以,如果
@array1中的字符串应该 是chose,,你是说它应该匹配cause,chose,objet,来自@array2但是不是,比如说cause,objet,chose,因为它后面没有逗号? -
对不起!我做错了。数组 1 中的元素是 1. 选择 2. 抽象。数组 2 中的元素是:cause,choose,objet 或 selected,objet。因此,如果我在数组 1 中有像“选择”这样的元素,我想匹配数组 2 中的元素,例如“选择,对象”和“原因,选择,对象”。
标签: arrays perl string-matching synonym