【问题标题】:RegExp duplicate range in character class字符类中的正则表达式重复范围
【发布时间】:2021-12-19 19:12:21
【问题描述】:

我想知道为什么 /[\sA-Za-z0-9s#.\',-]/ 被我的代码质量 linter 标记为有重复项?

我知道一个字符类 [abc] 表示匹配其中之一,a, b or c

\s = 空格 A-Z = 匹配所有大写字母 a-z = 匹配所有小写字母 0-9 匹配所有数字 s#.\',- = 我真的不知道...

【问题讨论】:

  • # 之前的s 已经包含在a-z 中。
  • 好吧@Barmar 这也是我的想法......也许 \s 是有意的,但 \s# 有什么作用吗?所以 s#.\' 匹配那些特定的字符 s#.'
  • 你已经有\s开头了,不用复制了。
  • 是的,它们匹配那些特定的字符,就像[abc] 匹配那些特定的字符一样。
  • 很好——谢谢!如果您添加为答案,我会接受

标签: regex sonarqube


【解决方案1】:

重复来自s#.\',- 中的s,因为s 包含在a-z 中。只需将其删除。

/[\sA-Za-z0-9#.\',-]/

s#.\',- 匹配这些单个字符中的任何一个。请注意,您不需要转义 ',除非它嵌入到使用 ' 作为其分隔符的编程语言字符串中。

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多