0

我有以下字符串:

hum = "\\w*h(u|v|\\|_\\||\\/)(m|\\/\\\\\\/\\\\)\\w*"

它被转储到以下正则表达式中:

"I like to hu/\\/\\ every day.".gsub /#{hum}/i, 'sing'
=> "I like to sing every day."

有用。但后来我这样做:

"I like to hu/\\/\\ every day.".gsub /#{hum}\b/i, 'sing'
=> "I like to hu/\\/\\ every day."

我所做的只是\b#{hum}. 并且字符串中有一个非单词字符。有什么问题?

4

1 回答 1

1

\b匹配单词边界。这是一个零宽度位置,其中一侧是单词字符,另一侧是非单词字符。

在将其添加到正则表达式的末尾之前,匹配项是hu/\\/\\,以下字符是。当您添加\b到正则表达式时,您尝试\b在之间匹配\\and ,这不是单词边界,因此它不匹配。

于 2013-07-06T02:16:15.293 回答