【问题标题】:Issues with using regex in 'gsub'在“gsub”中使用正则表达式的问题
【发布时间】:2017-08-07 03:07:07
【问题描述】:

我很困惑为什么这没有按预期工作。

d = "936589_WI_RAPIDS_STREET_DEPT"
f=d.gsub('/936*[0-9]_/',' ')
# => "936589_WI_RAPIDS_STREET_DEPT" 

我自己测试了我的正则表达式,它给了我想要的输出:

"WI_RAPIDS_STREET_DEPT"

【问题讨论】:

  • 请删除 IRB 提示、代码require "awesome_print"d 赋值的返回值,因为这些对于问题来说不是必需的。谢谢:)
  • OK 想通了.. 我的语法不正确 - d.gsub /936.*[0-9]_/, ""
  • 只需删除正则表达式周围的引号。
  • 是的,刚刚意识到 gsub 需要一个正则表达式对象和一个字符串作为参数。

标签: ruby gsub


【解决方案1】:

gsub 接受正则表达式对象,而不是字符串。

试试:

f=d.gsub(/936*[0-9]_/, ' ')

你的正则表达式应该如下:

f=d.gsub(/936[0-9]*_/, ' ')

【讨论】:

  • gsub 也接受字符串,只是不会从字符串中解析正则表达式对象:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 2013-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多