我想将多字字符串项(存储在数组中)多次匹配为文本文件中的正则表达式。我还想创建一个哈希,其中匹配的项目作为键,出现次数作为它们的值(理想情况下按值排序)。这是我到目前为止所拥有的:
读入要匹配项目的文本文件:
open(FILE, "<file.txt") or die "cannot open file for reading: $!";
local $/ = undef;
my $inputfile = <FILE>;
close FILE;
遍历多词数组,将每个项目转换为正则表达式,然后匹配正则表达式$inputfile
并创建出现的哈希:
foreach my $mwe (@mwelist) {
my $mweregex = quotemeta($mwe);
foreach ($inputfile =~ /($mweregex)/g) {
#print STDOUT "$1\n\n";
$mweinputfile{$mwe}++;
}
}
@mwelist
是一个包含字符串项的数组,每个字符串项是两个或更多单词。
现在代码不起作用 - 如果我取消注释打印命令,它只会在 shell 中给我空行(只是空行,没有空格)。
感谢任何指针/更正/建议,
这是输入数据的示例行(上面的 file.txt):
Sehr geehrter Herr Geißler, meine sehr geehrten Damen und Herren nicht nur hier im Saal sondern auch an den Bildschirmen!Wir möchte gern die Diskussion über die Schnellfahrstrecke Wendlingen-Ulm – und Herr Geißler, um auch da für Klarheit zu sorgen: Wenn wir von Neubaustrecke oder Schnellfahrstrecke reden, meinen wir dasselbe – diesese Diskussion möchte ich mit einem Überblick beginnen, der inform warum wir diese Schnellfahrstrecke vorsehen, was der verkehrliche Vorteil und der verkehrliche Nutzen ist, und darüber hinaus natürlich soll ein Überblick gegeben werden, warum sie genau so geplant und ausgeführt wird, wie sie hier dargestellt ist.
以下是一些示例@mwelist
:
...
在 gewissem Sinne
在格维森法伦
gewiß nicht
das weiß ich ganz gewiß
...