我有以下字符串:
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}
(非单词字符)。并且是字符串中的非单词字符。有什么问题?
答案 0 :(得分:1)
\b
匹配单词边界。这是一个零宽度的位置,一边是单词字符,另一边是非单词字符。
在将其添加到正则表达式的末尾之前,匹配为hu/\\/\\
,并且以下字符为。当您向正则表达式添加
\b
时,您尝试在\b
和\\
之间匹配,这不是字边界,因此它不匹配。< / p>