在我正在处理的文本数据中,伟大的符号总是应该是最终的角色。因此,我想要替换所有不符合要求的事件:
some_variable.gsub!(/>([^\n])/, ">\n\\1")
然而,我继续得到*未定义的方法gsub!' for nil:NilClass (NoMethodError)* error when calling this
gsub!` - 即使我用反斜杠转义该字符。
令我惊讶的是,更改它以使GT标志不是正则表达式中的第一个:
some_variable.gsub!(/(.)>([^\n])/,"\\1\n\\2")
让它发挥作用。但为什么? gsub
返回nil是不是很奇怪?
答案 0 :(得分:4)
gsub!
(破坏性)返回nil when it doesnt modify anything
因此,如果没有通配符
,正则表达式不匹配,则会出现其行为答案 1 :(得分:2)
这与gsub!
无关。错误消息表示您尝试在gsub!
上致电nil
,即当您不希望some_variable
nil
为gsub!
时。 gsub!
的参数,甚至是对some_variable
本身的调用都是完全无关紧要的,当您预期nil
String
为 A B C
1| Hi | Bill | 25
2| Do | You | 50
3| Like | Cheese | 75
4| Hi | Bill | 100
时,问题就是<p:selectOneButton value="#{selectOneView.productViewOption}" styleClass="product-view">
<f:selectItem itemLabel="" itemValue="Xbox One" />
<f:selectItem itemLabel="" itemValue="PS4" />
<f:selectItem itemLabel="" itemValue="Wii U" />
</p:selectOneButton>
<script type="text/javascript">
$('.product-view div:nth-child(1) span').addClass('fa fa-list fa-2x');
$('.product-view div:nth-child(2) span').addClass('fa fa-star fa-2x');
$('.product-view div:nth-child(3) span').addClass('fa fa-th fa-2x');
</script>
{{1}} }。