\.
所以我创建了以下Ruby字符串:
"\."
但是,当我与Regexp.union一起使用它来创建我的正则表达式时,我得到了这个:
irb(main):017:0> Regexp.union("\.")=> /\\./
这将匹配斜线后跟一个点,而不只是一个点.将之前的结果与此进行比较:
irb(main):018:0> Regexp.new("\.")=> /\./
这给了我想要的正则表达式但没有所需的联合.
你能解释为什么Ruby会像那样行事以及如何正确结合正则表达式吗?利用的上下文是导入描述正则表达式的JsON字符串并在Ruby中将它们联合起来.
解决方法 将字符串传递给Regexp.union旨在从字面上匹配该字符串.没有必要逃避它,Regexp.escape已在内部调用.Regexp.union(".")#=> /\./
如果要将正则表达式传递给Regexp.union,请不要使用字符串:
Regexp.union(Regexp.new("\."))#=> /\./总结
以上是内存溢出为你收集整理的Ruby Regexp:单个正则表达式与new和union之间的区别全部内容,希望文章能够帮你解决Ruby Regexp:单个正则表达式与new和union之间的区别所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)