# class Regexp

### Public Instance Methods

+(other) click to toggle source

Add regular expressions.

    /a/ + /b/ == /(?-mix:a)(?-mix:b)/

Functionally equivalent to:

    /ab/

CREDIT: Tyler Rick

    # File lib/facets/regexp/op_add.rb, line 12
    def +(other)
      other = Regexp.escape(other) if other.is_a?(String)
      /#{self}#{other}/
    end

arity() click to toggle source

Returns the number of backreferencing subexpressions.

    /(a)(b)(c)/.arity  #=> 3
    /(a(b(c)))/.arity  #=> 3

Note that this is not perfect, especially with regards to x and embedded comments.

CREDIT: Trans

    # File lib/facets/regexp/arity.rb, line 13
    def arity
      source.scan( /(?!\)[(](?!\?[#=:!>-imx])/ ).length
    end

multiline?() click to toggle source

Is a regular expression multiline?

    /x/.multiline?   #=> false
    /x/m.multiline?  #=> true

    # File lib/facets/regexp/multiline.rb, line 8
    def multiline?
      options & MULTILINE == MULTILINE
    end

to_re(esc=false) click to toggle source

Simply returns itself. Helpful when converting strings to regular expressions, where regexp might occur as well –in the same vien as using to_s on symbols. The parameter is actaully a dummy parameter to coincide with String#to_re.

    /abc/.to_re  #=> /abc/

CREDIT: Trans

    # File lib/facets/regexp/to_re.rb, line 24
    def to_re(esc=false)
      self  # Of course, things really should know how to say "I" ;)
    end

to_regexp() click to toggle source

Like to_re, but following Ruby's formal definitions, only a Regular expression type object will respond to this.

Note that to be of much real use this should be defined in core Ruby.

CREDIT: Florian Gross

    # File lib/facets/regexp/to_re.rb, line 10
    def to_regexp
      self
    end

|(other) click to toggle source

Operator form of `Regexp.union`.

    /a/ | /b/  #=> /(?-mix:a)|(?-mix:b)/

If `other` is not a Regexp it is passed to Regexp.escape.

    # File lib/facets/regexp/op_or.rb, line 9
    def |(other)
      other = Regexp.escape(other) unless Regexp === other
      Regexp.union(self, other)
    end