2013-07-24 72 views
-2

我试图做一个GSUB,当我作出这样的输入:正则表达式模式 - GSUB红宝石

'09/02 10:00 HS任何字符串”

会还给我喜欢的东西:

'09/02 10:00'

所以我GSUB应该拿出所有的非数字,但我需要的字符串‘:’和‘/’留

请帮助。

+0

你所描述会给'“09/0210:00”'在vinodadhikary的答案,而不是像你给的那样“09/02 10:00”。 – sawa

+1

**向我们展示您到目前为止所尝试的内容。**不要描述它,但编辑问题并粘贴到实际代码中。然后告诉我们什么没有工作。当你尝试时发生了什么?你得到不正确的结果了吗?你有没有得到结果?如果结果不正确,是什么使它们不正确?你想要什么呢?你有没有得到任何正确的结果?如果是这样,他们是什么?不要让我们猜测。 –

回答

1

拿出所有的非数字字符串,但我需要“:”和“/”留

"09/02 10:00 hs any string".gsub(/[^0-9\/:]/, '')  
# "09/0210:00" 
+0

最后你不需要'to_s'。你应该使用'\ d'来代替'0-9'。否则,如果你有一个像“0-9 \ /:”这样的字符串,你可以做'tr(“0-9 \ /:”,“”)''。 – sawa

+0

@sawa,你是对的不需要'to_s'作为'gsub'返回字符串,复制粘贴错误:) – vee

0

试试这个:

result = '09/02 10:00 hs any string'.gsub(/(?<=^\d{2}\/\d{2} \d{2}:\d{2}).*/, '') 

的想法是无法捕捉的日期时间把它在一个回顾后。

+0

不,它没有。所有的琴弦都保持不变。不管怎么说,还是要谢谢你 ! –

+0

@AjojoAmiras:你必须显示结果,而不是你的旧变量!它的工作原理,我测试过了! –

+0

我这样做,但它不工作... 我的输入和输出是一样的。 –