我在哪里可以找到关于修饰符的文档gsub?\ a\b\c\1\2\3%a%b%c $ 1 $ 2%3等?
具体来说,我正在看这段代码...... something.gsub(/%u/, unit)那是什么%u?
mix*_*nic 11
首先,%u红宝石正则表达式没什么特别之处:
mixonic@pandora ~ $ irb
irb(main):001:0> '%u'.gsub(/%u/,'heyhey')
=> "heyhey"
Run Code Online (Sandbox Code Playgroud)
Ruby 1.8 regex的权威文档在Ruby Doc Bundle中:
由斜杠分隔的字符串是正则表达式.紧接在后一个斜杠之后的字符表示正则表达式的选项.选项i表示正则表达式不区分大小写.选项i表示正则表达式在第一次计算时只执行一次表达式替换.选项x表示扩展正则表达式,这意味着表达式中允许使用空格和共数.选项p表示POSIX模式,其中换行被视为普通字符(与点匹配).
%r/STRING /是正则表达式的另一种形式.
Run Code Online (Sandbox Code Playgroud)^ beginning of a line or string $ end of a line or string . any character except newline \w word character[0-9A-Za-z_] \W non-word character \s whitespace character[ \t\n\r\f] \S non-whitespace character \d digit, same as[0-9] \D non-digit \A beginning of a string \Z end of a string, or before newline at the end \z end of a string \b word boundary(outside[]only) \B non-word boundary \b backspace(0x08)(inside[]only) [ ] any single character of set * 0 or more previous regular expression *? 0 or more previous regular expression(non greedy) + 1 or more previous regular expression +? 1 or more previous regular expression(non greedy) {m,n} at least m but most n previous regular expression {m,n}? at least m but most n previous regular expression(non greedy) ? 0 or 1 previous regular expression | alternation ( ) grouping regular expressions (?# ) comment (?: ) grouping without backreferences (?= ) zero-width positive look-ahead assertion (?! ) zero-width negative look-ahead assertion (?ix-ix) turns on (or off) `i' and `x' options within regular expression.这些修饰符位于封闭组(如果有)内.(?ix-ix :)
i' and在此非捕获组中打开(或关闭)x'选项.正则表达式中提供反斜杠表示法和表达式替换.
祝好运!
Zenspider的Quickref包含一个部分,说明可以在regexen中使用哪些转义序列,以及一个列出由regexp匹配设置的伪变量的部分.在gsub的第二个参数中,您只需使用反斜杠而不是$来编写变量的名称,并在应用regexp后将其替换为该变量的值.如果使用双引号字符串,则需要使用两个反斜杠.
使用gsub的块形式时,您可以直接使用变量.如果从块中返回包含例如\ 1的字符串,则不会被$ 1替换.只有在使用双参数形式时才会发生这种情况.
如果你在sub/gsub中使用block,你可以访问这样的组:
>> rx = /(ab(cd)ef)/
>> s = "-abcdef-abcdef"
>> s.gsub(rx) { $2 }
=> "cdgh-cdghi"
Run Code Online (Sandbox Code Playgroud)