我有以下的正则表达式为什么rubocop要求我在正式使用%r时将//置于正则表达式?
regexp = %r{
((returned|undelivered)\smail|mail\sdelivery(\sfailed)?)
}x
但是当我在其上运行rubocop,它抱怨说,我需要“使用//各地正则表达式。”
我该如何解决它?
我有以下的正则表达式为什么rubocop要求我在正式使用%r时将//置于正则表达式?
regexp = %r{
((returned|undelivered)\smail|mail\sdelivery(\sfailed)?)
}x
但是当我在其上运行rubocop,它抱怨说,我需要“使用//各地正则表达式。”
我该如何解决它?
我不运行rubocop,所以不确定这会解决您的问题。您可以使用//代替{}使用%R时包围的正则表达式:
regexp = %r/((returned|undelivered)\smail|mail\sdelivery(\sfailed)?)/x
,当我在它上面运行rubocop,它抱怨说,我需要“使用//各地正则表达式。”
我该如何解决它?
我认为该消息是很清楚的:要解决它,你可以使用//
周围的正则表达式:
regexp = /((returned|undelivered)\smail|mail\sdelivery(\sfailed)?)/x
您可以禁用(和启用)的任何rubocop警察加入了.rubocop.yml
文件到您的项目文件夹的根目录并设置适当的配置。要查看您可以执行的操作,请查看您的rubocop包中的全局default.yml
。它完全评论。
对于这个特定的问题,创建一个.rubocop.yml
和...
要完全禁用警察:
Style/RegexpLiteral: Enabled: false
要总是使用%r
:
Style/RegexpLiteral: EnforcedStyle: percent_r
您可以使用正则表达式多用/.../x
之一:
regexp =/
((returned|undelivered)
\s
mail|mail
\s
delivery
(\sfailed)?)
/x