Ruby gsub / regex修饰符?

我在哪里可以找到关于gsub修饰符的文档? \ a \ b \ c \ 1 \ 2 \ 3%a%b%c $ 1 $ 2%3等?

具体来说,我正在看这段代码…… something.gsub(/%u/, unit) %u什么?

Zenspider的Quickref包含一个部分,说明可以在regexen中使用哪些转义序列,以及列出由regexp匹配设置的伪变量的部分 。 在gsub的第二个参数中,您只需使用反斜杠而不是$来编写变量的名称,并在应用regexp后将其替换为该变量的值。 如果使用双引号字符串,则需要使用两个反斜杠。

使用gsub的块forms时,您可以直接使用变量。 如果从块中返回包含例如\ 1的字符串,则不会将其替换为$ 1。 只有在使用双参数forms时才会发生这种情况。

首先, %u在ruby正则表达式中没有什么特别之处:

 mixonic@pandora ~ $ irb irb(main):001:0> '%u'.gsub(/%u/,'heyhey') => "heyhey" 

Ruby 1.8正则表达式的权威文档在Ruby Doc Bundle中:

由斜杠分隔的字符串是正则表达式。 后一个斜杠后面的字符表示正则表达式的选项。 选项i表示正则表达式不区分大小写。 选项i表示正则表达式在第一次计算时仅执行一次表达式替换。 选项x表示扩展正则表达式,这意味着表达式中允许使用空格和共数。 选项p表示POSIX模式,其中换行符被视为普通字符(与点匹配)。

%r / STRING /是正则表达式的另一种forms。

 ^ 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’选项。

正则表达式中提供反斜杠表示法和表达式替换。

祝好运!

如果你在sub / gsub中使用block,你可以访问这样的组:

 >> rx = /(ab(cd)ef)/ >> s = "-abcdef-abcdef" >> s.gsub(rx) { $2 } => "cdgh-cdghi" 

对于Ruby 1.9的Oniguruma,这里有一个很好的正则表达式文档。

gsub也是LUA语言中的字符串替换函数。

LUA正则表达式语言中,%u表示大写字符类。 即它将匹配所有大写字母。 同样,%l将匹配小写。

LUA正则表达式模式