val line1
= "127.0.0.1 ssl.google-analytics.com" val line2
= "#127.0.0.1 ssl.google-analytics.com" val line3
= "127.0.0.1 ssl.google-analytics.com # Comment" val line4
= "#127.0.0.1 ssl.google-analytics.com # Comment"
val lineRegex
= """(^#?).*(?:127\.0\.0\.1)\s+((?!-)[A-Za-z0-9-\.]{1,63}(?<!-)\.+[A-Za-z]{2,6})(?:\s+(#?.*))?""".
r val m
= lineRegex.
findFirstMatchIn(line2
).
get
println(line2.substring(m.start(1), m.end(1))) // Should be # or ""
println(line2.substring(m.start(2), m.end(2))) // Should be ssl.google-analytics.com
if (m.
group(3) != null) println
(line2.
substring(m.
start(3), m.
end(3))) // Should be # Comment or "" }
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoJdmFsIGxpbmUxID0gIjEyNy4wLjAuMSBzc2wuZ29vZ2xlLWFuYWx5dGljcy5jb20iCgl2YWwgbGluZTIgPSAiIzEyNy4wLjAuMSBzc2wuZ29vZ2xlLWFuYWx5dGljcy5jb20iCgl2YWwgbGluZTMgPSAiMTI3LjAuMC4xIHNzbC5nb29nbGUtYW5hbHl0aWNzLmNvbSAjIENvbW1lbnQiCgl2YWwgbGluZTQgPSAiIzEyNy4wLjAuMSBzc2wuZ29vZ2xlLWFuYWx5dGljcy5jb20gIyBDb21tZW50IgoJCgl2YWwgbGluZVJlZ2V4ID0gIiIiKF4jPykuKig/OjEyN1wuMFwuMFwuMSlccysoKD8hLSlbQS1aYS16MC05LVwuXXsxLDYzfSg/PCEtKVwuK1tBLVphLXpdezIsNn0pKD86XHMrKCM/LiopKT8iIiIucgoJdmFsIG0gPSBsaW5lUmVnZXguZmluZEZpcnN0TWF0Y2hJbihsaW5lMikuZ2V0CgkKCXByaW50bG4obGluZTIuc3Vic3RyaW5nKG0uc3RhcnQoMSksIG0uZW5kKDEpKSkgIC8vIFNob3VsZCBiZSAjIG9yICIiCglwcmludGxuKGxpbmUyLnN1YnN0cmluZyhtLnN0YXJ0KDIpLCBtLmVuZCgyKSkpICAvLyBTaG91bGQgYmUgc3NsLmdvb2dsZS1hbmFseXRpY3MuY29tCglpZiAobS5ncm91cCgzKSAhPSBudWxsKSBwcmludGxuKGxpbmUyLnN1YnN0cmluZyhtLnN0YXJ0KDMpLCBtLmVuZCgzKSkpIC8vIFNob3VsZCBiZSAjIENvbW1lbnQgb3IgIiIKfQ==