【发布时间】:2013-11-11 06:25:07
【问题描述】:
我有一个输入文件,我正在读入一个哈希表,输入文件如下
MANAGEMENT=IDL
NORTH=IDL,NORTHERN||VIDL,NORTH||IDL,NORTH
SOUTH=IDL,SOUTHERN||CIDL,SOUTH
现在对于每个键,我必须检查另一个字符串说实例(这也是一个字符串)是否包含值,即 NORTH
Condition= TRUE if
$instance contains (IDL AND NORTHERN) OR (VIDL AND NORTH) OR (IDL AND NORTH)
请注意,Value 可以有很多这样的 OR 条件
我有这样 15000 个实例,我必须比较每个值,所以需要一个快速的方法。
我正在考虑将值传递给一个函数,该函数将返回一个正则表达式,我可以对其进行检查但无法想到任何此类(我是 perl 中的新蜜蜂)
感谢任何帮助或更好的建议
【问题讨论】:
-
对不起,我编辑它是 NORTH; perl 中相当新,所以我想看看是否有一些我可以使用的快速方法。
-
@mpapec $instance 是一个字符串
-
不,它包含我上面写的;详细说明($instance 包含 IDL AND $instance 包含 NORTHERN)或($instance 包含 IDL AND $instance 包含 NORTH)
-
听起来你可以有除示例之外的其他规则;这些是什么格式的?你每次运行程序只使用一个规则吗?还有哪些其他实际的规则示例?根据规则,您实际上希望发生什么?例如您是要查找规则为真的所有行,还是将这些行划分为真或假的行,或者只是用行输出规则的结果?
-
@ysth 我正在尝试识别规则为真的实例。格式相同,只是值可以是由 || 分隔的任何内容。条件。如果实例(我要比较的字符串)同时匹配第一个键和第二个键,我将采用第二个键,但我在此函数中使用 HASHMAP 实现了这一点,我只想识别与这些单独规则中的每一个匹配的那些并添加那些传递给哈希映射。
标签: perl