javascript - 改进正则表达式以匹配列表中的重复项

标签 javascript regex

我正在使用正则表达式查找列表中的重复项。它只是一个逗号分隔的短列表,性能不是问题,因此无需告诉我出于这些原因我不应该使用正则表达式。

// returns a match because some is repeated
"some,thing,here,some,whatever".match(/(^|,)(.+?)(,|,.+,)\2(,|$)/g)

问题...

  1. 这个正则表达式可以改进吗?
  2. 它是否涵盖了逗号不在分隔字符串中的所有可能情况
  3. 是否有更好的(最好是更具可读性和效率的)方法来做到这一点?

最佳答案

我看不出在这里使用正则表达式的目的,除非你喜欢难以想象的痛苦。如果我必须找到重复项,我会

  • 获取单词数组

    var words = "...".split(',');
    
  • 如果您愿意,可以选择将所有内容小写

  • 对数组进行排序

    words.sort()
    
  • 重复项现在应该全部位于数组的连续位置。

作为一个额外的优势,我很确定这会比正则表达式版本更有效。

关于javascript - 改进正则表达式以匹配列表中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458512/

相关文章:

javascript - 如何修改正则表达式以正确验证域?

javascript - 不能在 title 属性中使用 HTML 实体吗?

javascript - 无法使用 Chrome Power API

JavaScript regexr 用html替换字符串?

Java:模式、扫描仪示例不起作用

java - 什么是 Pattern.quote() 的 Java 1.4.2 等价物

javascript - 插值将应用于所有 ngfor 元素的范围文本内容

javascript - 使用 React Immutability helpers 或 Immutable js React 合并不可变对象(immutable对象)数组

regex - 通过 Bash 脚本捕获文本组

java - 使用 Java 的 CLI 模式匹配