2017-08-07 32 views
-1

我很困惑,为什么这不能按预期工作。在'gsub'中使用正则表达式的问题

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

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

"WI_RAPIDS_STREET_DEPT" 
+1

请删除IRB提示,代码'需要 “awesome_print”'和'd的返回值因为这些问题不是必需的。谢谢:) –

+0

确定搞清楚了..我的语法是不正确的 - d.gsub /936.*[0-9]_/,“” – ssharma

+0

只需删除引号围绕正则表达式。 – dawg

回答

2

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

尝试:

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

而且您正则表达式大概应该是如下:

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

'gsub'也接受一个字符串,它只是不会解析字符串中的正则表达式对象:) –