当前位置 : 主页 > 编程语言 > ruby >

Ruby RegEx /模式匹配用于精确的单词/字符串匹配

来源:互联网 收集:自由互联 发布时间:2021-06-23
得到一个简单的问题:我有一个这样的文件: ip-10-0-12-84.eu-west-1.compute.internal, master, instnum=1, Running..........ip-10-0-26-118.eu-west-1.compute.internal, master_rabbit, instnum=4, Runningip-10-0-26-116.eu-west-1.
得到一个简单的问题:我有一个这样的文件:

ip-10-0-12-84.eu-west-1.compute.internal, master, instnum=1, Running
.....
.....
ip-10-0-26-118.eu-west-1.compute.internal, master_rabbit, instnum=4, Running
ip-10-0-26-116.eu-west-1.compute.internal, master_rabbit, instnum=5, Running
.....
ip-10-0-26-68.eu-west-1.compute.internal, sql_master, instnum=9, Running
ip-10-0-13-244.eu-west-1.compute.internal, nat, instnum=2, Running

我的目标是读取文件,跳过注释(以#开头),空/空行以及包含nat或master的行.我试过这个:

open('/tmp/runnings.txt').each do |line|
    next if line =~ /(^\s*(#|$)|nat|master)/

这几乎可以工作,但它也消除了master_rabbit和sql_master中的行.我怎样才能选择主人而不是其他任何组合呢?可以在同一行完成吗?干杯!!

Word boundary anchors可以在这里提供帮助:

/^\s*(#|$)|\b(nat|master)\b/
网友评论