Regular expressions

Simple matching:

var str = "I am a string"
if (str =~ /string$/) {
    print "Ends with 'string'\n"
}

Global matching:

var str = <<'EOF'
    x:Foo
    y:Bar
EOF
 
while (var m = str=~/(\w+):(\S+)/g) {
    say "#{m[0]} -> #{m[1]}"
}

Substitutions:

var str = "I am a string"
 
# Substitute something mached by a regex
str.sub!(/ a /, ' another ')   # "I am a string" => "I am another string"
 
# Remove something matched by a regex
str -= / \Kanother /i          # "I am another string" => "I am string"
 
# Global subtitution with a block
str = str.gsub(/(\w+)/, {|s1| 'x' * s1.len})  # globaly replace any word with 'xxx'
 
say str     # prints: 'x xx xxxxxx'

Last updated