String processing in Ruby%q,%q,%W,%W,%x,%r,%s usage

Source: Internet
Author: User
Tags alphanumeric characters

%Q

This was an alternative for double-quoted strings and when you had more quote characters in a string. Instead of putting backslashes in front of them, you can easily write:
>> %Q(Joe said: "Frank said: "#{what_frank_said}"")
=> "Joe said: "Frank said: "Hello!"""

The parenthesis " ( ..." can be replaced with any other ) non-alphanumeric characters and non-printing characters (pair s), so the following commands is equivalent:
>> %Q!Joe said: "Frank said: "#{what_frank_said}""!
>> %Q[Joe said: "Frank said: "#{what_frank_said}""]
>> %Q+Joe said: "Frank said: "#{what_frank_said}""+

can use also:
>> %/Joe said: "Frank said: "#{what_frank_said}""/
=> "Joe said: "Frank said: "Hello!"""

%q

Used for single-quoted strings. The syntax was similar to%Q, but single-quoted strings was not subject to expression substitution or escape sequences.
>> %q(Joe said: ‘Frank said: ‘#{what_frank_said} ‘ ‘)
=> "Joe said: ‘Frank said: ‘\#{what_frank_said} ‘ ‘"

Slicing a string, splitting an existing string into multiple arrays

%W

Used for double-quoted array elements. The syntax is similar to%Q
>> %W(#{foo} Bar Bar\ with\ space)
=> ["Foo", "Bar", "Bar with space"]

%w

Used for single-quoted array elements. The syntax was similar to%Q, but single-quoted elements was not subject to expression substitution or escape sequences.
>> %w(#{foo} Bar Bar\ with\ space)
=> ["\#{foo}", "Bar", "Bar with space"]

%x

Uses the method and returns the standard output of running, the ` command in a subshell. The syntax is similar to%Q.
>> %x(echo foo:#{foo})
=> "foo:Foo\n"

%r

Used for regular expressions. The syntax is similar to%Q.
>> %r(/home/#{foo})
=> "/\\/home\\/Foo/"

%s

Used for symbols. It ' s not subject to expression substitution or escape sequences.
>> %s(foo)
=> :foo
>> %s(foo bar)
=> :"foo bar"
>> %s(#{foo} bar)
=> :"\#{foo} bar"

String processing in Ruby%q,%q,%W,%W,%x,%r,%s usage

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.