将字符串值与正则表达式文件中存在的正则表达式列表匹配

问题描述:

我想将值与正则表达式文件中存在的所有正则表达式匹配。我写了下面的代码来匹配字符串VALUE与文件中存在的所有字符串。将字符串值与正则表达式文件中存在的正则表达式列表匹配

if File.open("/Users/jshaw/mapping/addID.txt").lines.any?{|line| line.include?(VALUE)} 

    var badID = "true" 

end' 

但是,我需要将VALUE与正则表达式中存在的正则表达式匹配。任何人都可以帮助我吗?

我试过这个,但我需要把所有正则表达式放在一个文件中,因为我有超过200个正则表达式。

String IS_BAD_ID = "false" 
String ClientID = "10.22.shaw" 
if File.open("/Users/jshaw/mapping/addID.txt").lines.any?{ |line| Regexp.new(line) === ClientID} 
      IS_BAD_ID = "true"   
end 

我总是得到IS_BAD_ID值为false。

+0

你尝试过什么?当然你看过一些使用正则表达式的Ruby教程。 – 4castle

+0

@ 4castle 请参阅编辑后的文章 – User24

使用Regexp.new将字符串编译为正则表达式对象。
比较你的正则表达式和目标字符串与===
剥去.lines.chomp引入的换行符。

哪些应该留给你:

String IS_BAD_ID = "false" 
String ClientID = "10.22.shaw" 
if File.open("/Users/jshaw/mapping/addID.txt").lines.any?{ |line| Regexp.new(line.chomp) === ClientID} 
      IS_BAD_ID = "true"   
end 
+0

将.match()返回一个布尔值? – User24

+0

它返回一个评估为'Truthy'的Match对象。如果没有匹配,.match()返回nil,即'Falsy'。 – Blue

+0

我更新了我的回答,使用'==='返回一个布尔值;这应该是更正确的。 – Blue