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