声纳问题:删除此“\”,添加另一个“\”以对其进行转义,或将其设为原始字符串
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)