Ruby 正则表达式反向引用

Ruby 正则表达式反向引用,ruby,regex,Ruby,Regex,为什么会出现此片段: 'He said "Hello"' =~ /(\w)\1/ 你呢?我认为\w部分与H匹配,因此\1表示H,因此不应匹配任何内容?但是为什么会有这样的结果呢?你是对的,在那个位置没有匹配的。然后regex进一步找到匹配项,并将其返回给您 \w当然匹配任何单词字符,而不仅仅是“H”。没错,在该位置没有匹配的内容。然后regex进一步找到匹配项,并将其返回给您 \w当然匹配任何单词字符,而不仅仅是“H” 我认为\w部分与H匹配 \w匹配任何字母数字字符和下划线。它也恰好匹配H,

为什么会出现此片段:

'He said "Hello"' =~ /(\w)\1/

你呢?我认为\w部分与H匹配,因此\1表示H,因此不应匹配任何内容?但是为什么会有这样的结果呢?

你是对的,在那个位置没有匹配的。然后regex进一步找到匹配项,并将其返回给您


\w当然匹配任何单词字符,而不仅仅是“H”。

没错,在该位置没有匹配的内容。然后regex进一步找到匹配项,并将其返回给您

\w当然匹配任何单词字符,而不仅仅是“H”

我认为\w部分与H匹配

\w匹配任何字母数字字符和下划线。它也恰好匹配H,但这并不十分有趣,因为正则表达式接着说这必须匹配两次——这在文本中是H不能匹配的,因为它没有连续出现两次,而且其他任何字符也不能匹配,只有l。因此正则表达式与ll匹配

我认为\w部分与H匹配


\w匹配任何字母数字字符和下划线。它也恰好匹配H,但这并不十分有趣,因为正则表达式接着说这必须匹配两次——这在文本中是H不能匹配的,因为它没有连续出现两次,而且其他任何字符也不能匹配,只有l。因此正则表达式与您想到的ll.

匹配/^\w\1/。插入符号指定匹配必须从行首开始。如果没有这一点,匹配可以从字符串中的任何位置开始,它将找到第一个匹配项。

您想到的/^\w\1/。插入符号指定匹配必须从行首开始。如果不这样做,匹配可以从字符串中找到第一个匹配项的任何位置开始。

点是,\1表示\w块的一次重复,只有字母l加倍并与正则表达式匹配


玩弄ruby和正则表达式的一个好页面是

重点是,\1意味着\w块的一次重复,只有字母l加倍,并且将匹配您的正则表达式

一个玩弄ruby和正则表达式的好页面是