8

我有以下正则表达式

  regexp = %r{
     ((returned|undelivered)\smail|mail\sdelivery(\sfailed)?)
  }x

但是当我在它上面运行 rubocop 时,它抱怨我需要“在正则表达式周围使用 //”。

我怎样才能绕过它?

4

4 回答 4

3

.rubocop.yml您可以通过将文件添加到项目文件夹的根目录并设置适当的配置来禁用(和启用)任何 rubocop cop 。要查看您可以做什么,请查看default.yml您的 rubocop 软件包中的全局变量。它已完全评论。

对于这个特定的问题,创建一个.rubocop.yml和...

要完全禁用警察:

Style/RegexpLiteral: Enabled: false

始终使用%r

Style/RegexpLiteral: EnforcedStyle: percent_r

于 2016-10-20T01:40:21.437 回答
2

我不运行 rubocop 所以不确定这会解决你的问题。使用 %r 时,您可以使用 // 而不是 {} 来包围正则表达式:

regexp = %r/((returned|undelivered)\smail|mail\sdelivery(\sfailed)?)/x
于 2016-06-22T01:14:11.713 回答
1

您可以使用多行正则表达式/.../x

regexp = /
  ((returned|undelivered)
  \s
  mail|mail
  \s
  delivery
  (\sfailed)?)
/x

在Rubocop gem 文档中查看更多信息

于 2017-03-16T05:07:29.493 回答
-2

当我在其上运行 rubocop 时,它抱怨我需要“在正则表达式周围使用 //”。

我怎样才能绕过它?

我认为信息很清楚:要绕过它,您可以使用//正则表达式:

regexp = /((returned|undelivered)\smail|mail\sdelivery(\sfailed)?)/x
于 2016-06-22T07:51:15.440 回答