[ruby/csv] docs: Add entry for backslash_quotes liberal parsing
(https://github.com/ruby/csv/pull/280) https://github.com/ruby/csv/commit/0dcfcd9c48
This commit is contained in:
parent
f1313caec1
commit
2098093fb4
@ -1,13 +1,13 @@
|
|||||||
====== Option +liberal_parsing+
|
====== Option +liberal_parsing+
|
||||||
|
|
||||||
Specifies the boolean value that determines whether
|
Specifies the boolean or hash value that determines whether
|
||||||
CSV will attempt to parse input not conformant with RFC 4180,
|
CSV will attempt to parse input not conformant with RFC 4180,
|
||||||
such as double quotes in unquoted fields.
|
such as double quotes in unquoted fields.
|
||||||
|
|
||||||
Default value:
|
Default value:
|
||||||
CSV::DEFAULT_OPTIONS.fetch(:liberal_parsing) # => false
|
CSV::DEFAULT_OPTIONS.fetch(:liberal_parsing) # => false
|
||||||
|
|
||||||
For examples in this section:
|
For the next two examples:
|
||||||
str = 'is,this "three, or four",fields'
|
str = 'is,this "three, or four",fields'
|
||||||
|
|
||||||
Without +liberal_parsing+:
|
Without +liberal_parsing+:
|
||||||
@ -17,3 +17,22 @@ Without +liberal_parsing+:
|
|||||||
With +liberal_parsing+:
|
With +liberal_parsing+:
|
||||||
ary = CSV.parse_line(str, liberal_parsing: true)
|
ary = CSV.parse_line(str, liberal_parsing: true)
|
||||||
ary # => ["is", "this \"three", " or four\"", "fields"]
|
ary # => ["is", "this \"three", " or four\"", "fields"]
|
||||||
|
|
||||||
|
Use the +backslash_quote+ sub-option to parse values that use
|
||||||
|
a backslash to escape a double-quote character. This
|
||||||
|
causes the parser to treat <code>\"</code> as if it were
|
||||||
|
<code>""</code>.
|
||||||
|
|
||||||
|
For the next two examples:
|
||||||
|
str = 'Show,"Harry \"Handcuff\" Houdini, the one and only","Tampa Theater"'
|
||||||
|
|
||||||
|
With +liberal_parsing+, but without the +backslash_quote+ sub-option:
|
||||||
|
# Incorrect interpretation of backslash; incorrectly interprets the quoted comma as a field separator.
|
||||||
|
ary = CSV.parse_line(str, liberal_parsing: true)
|
||||||
|
ary # => ["Show", "\"Harry \\\"Handcuff\\\" Houdini", " the one and only\"", "Tampa Theater"]
|
||||||
|
puts ary[1] # => "Harry \"Handcuff\" Houdini
|
||||||
|
|
||||||
|
With +liberal_parsing+ and its +backslash_quote+ sub-option:
|
||||||
|
ary = CSV.parse_line(str, liberal_parsing: { backslash_quote: true })
|
||||||
|
ary # => ["Show", "Harry \"Handcuff\" Houdini, the one and only", "Tampa Theater"]
|
||||||
|
puts ary[1] # => Harry "Handcuff" Houdini, the one and only
|
||||||
|
Loading…
x
Reference in New Issue
Block a user