Is there a Regex Delete in Ruby?



我用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 "

这只是一个例子。

希望这有帮助:)

最新更新