我用regex删除的所有字符串都使用gsub,有更短的方法吗?string.gsub(/A.*//,'')
一种方法是添加自己的短方法:
class String
def del(regexp)
gsub(regexp,'')
end
def del!(regexp)
gsub!(regexp,'')
end
end
通常,此代码将放在lib/目录中,例如lib/string-extensions.rb
请注意,有些程序员真的不喜欢这个,因为它是猴子补丁。我个人喜欢它用于项目,因为它使代码更容易理解——一旦我有了"del"方法,我可以很快看到对它的调用只是删除regexp。
您可以指定要保留的字符串部分。
string[/[^/]*$/]
我不这么认为。
String::delete删除字符,并且与regex不匹配,这是一种完全不同的方法。
我唯一能想到的让你的那一行"更短"的方法是使用string.gsub!(/A.*//,'')
(注意那里的砰的一声)。
我认为这是一条路:)
您可以通过在参数中指定正则表达式来使用String::delete。
假设要从字符串中删除所有非字母数字。。。
a="Test String with &(*ille#*)gal char!@#acters ^lorem % ipsum $"
a.delete!('^a-zA-Z0-9 .')
当然要小心包括空白和DOT
以上代码将产生以下输出
"Test String with illegal characters lorem ipsum "
这只是一个例子。
希望这有帮助:)