2014-02-18 67 views
0

我有以下字符串"survey_questions_attributes_1392746726560_question_title"我需要修剪从第一个字符开始直到第一个数字的所有字符串。怎么做?字符串修剪红宝石

+2

请让我们看到你已经尝试了什么。 – Kyle

+1

我首先看看'String'的文档,看看工具箱里有什么:http://www.ruby-doc.org/core-2.1.0/String.html –

回答

0

我不使用String#[]

s = "survey_questions_attributes_1392746726560_question_title" 
s[/[a-z_]+(?:\d)/] = "" 
s # => "1392746726560_question_title" 
1
"survey_questions_attributes_1392746726560_question_title".sub /\D*/,'' 
4

String#slice方法支持正则表达式,所以你可以做:

[67] pry(main)> "survey_questions_attributes_1392746726560_question_title"[/\d.*/] 
=> "1392746726560_question_title" 
+2

'+'是多余的。 – sawa

+0

OP想要**修剪从第一个字符开始直到第一个数字的所有字符串** ..但是您没有这样做.. –

+1

@ArupRakshit如果您可以在不改变对象的情况下得到相同的结果,我想我会去为不会改变对象的选项 – bjhaid

0

看哪的Rubular电源,沐浴在它的荣耀。

string = "survey_questions_attributes_223233333_question_title" 
puts string.sub(string.scan(/survey_questions_attributes_(.*)/)[0][0] , " ") 
0
"survey_questions_attributes_1392746726560_question_title".split(/\D+/, 2).last 
# => "1392746726560_question_title"