声纳问题:删除此“\”,添加另一个“\”以对其进行转义,或将其设为原始字符串

Posted

技术标签:

【中文标题】声纳问题:删除此“\\”,添加另一个“\\”以对其进行转义,或将其设为原始字符串【英文标题】:Sonar Issue: Remove this "\", add another "\" to escape it, or make this a raw string声纳问题:删除此“\”,添加另一个“\”以对其进行转义,或将其设为原始字符串 【发布时间】:2019-12-12 18:30:13 【问题描述】:

SonaeQube/SonarLint/SonarSource 中有一条反斜杠规则:-

"\" should only be used as an escape character outside of raw strings

[https://rules.sonarsource.com/python/RSPEC-1717][1]

所以现在我正在使用这样的正则表达式:-

re= '\(\d+)[,\-](\d+)\': # Numbered pattern

SonarQube 给出的问题是:删除此“\”,添加另一个“\”以对其进行转义,或将其设为原始字符串。

我无法避免在这里使用反斜杠,请建议我如何解决这个问题。

【问题讨论】:

【参考方案1】:

按照建议做。

选项 1:使用额外的 \ 转义转义字符

re = '\\(\d+)[,\\-](\\d+)\\'

选项 2:将其设为原始字符串

re = r'\(\d+)[,\-](\d+)\'

在这种情况下,选项 2 需要的更改更少(仅 r 前缀)并且更易于阅读。

【讨论】:

它对我们的模式有什么影响吗?? 选项 1 和选项 2 相等。如果您查看print( '\\(\d+)[,\\-](\\d+)\\' )print( r'\(\d+)[,\-](\d+)\' ) 的输出,您会发现在内部它是相同的字符串\(\d+)[,\-](\d+)\

以上是关于声纳问题:删除此“\”,添加另一个“\”以对其进行转义,或将其设为原始字符串的主要内容,如果未能解决你的问题,请参考以下文章

list.count 是不是物理地遍历列表以对其进行计数,或者它是不是保留一个指针

将所有 UIAlertView 对象作为全局对象访问以对其进行通用控制(在解除分配视图控制器后解决警报中的 CRASH)

空样式 (.css/.scss) 文件

如何添加到列表的链接以使用 spring-jpa 进行排序?

动态构建索引以对 pandas 中的记录进行分类

格盘的时候出现“驱动器正在使用中。另一个程序或进程正在使用此驱动器。是不是仍要对其进行格式化”