得到一个简单的问题:我有一个这样的文件: 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/