为什么这个正则表达式在ruby中不匹配,但在任何其他语言中匹配?

时间:2014-01-16 10:19:27

标签: ruby-on-rails ruby regex

以下适用于Rubular.com,但在ruby中似乎不匹配:

字符串:

str = "<em>really</em>inexpensive"

目的: 在任何结束标记之后添加一个空格,后面没有任何空格。

正则表达式

str.gsub("/(<\/[a-zA-Z]+>)(\S)/","\1 \2")

它应该回馈"<em>really</em> inexpensive"

1 个答案:

答案 0 :(得分:6)

您应该使用正则表达式文字(/.../),而不是字符串("...")。并转义替换字符串中的\。 (我在下面的例子中使用了单引号版本的字符串)

str = "<em>really</em>inexpensive"
str.gsub(/(<\/[a-zA-Z]+>)(\S)/, '\1 \2') # '\1 \2' == "\\1 \\2"
# => "<em>really</em> inexpensive"