我正在使用正则表达式查找列表中的重复项。它只是一个逗号分隔的短列表,性能不是问题,因此无需告诉我出于这些原因我不应该使用正则表达式。
// returns a match because some is repeated
"some,thing,here,some,whatever".match(/(^|,)(.+?)(,|,.+,)\2(,|$)/g)
问题...
- 这个正则表达式可以改进吗?
- 它是否涵盖了逗号不在分隔字符串中的所有可能情况
- 是否有更好的(最好是更具可读性和效率的)方法来做到这一点?
最佳答案
我看不出在这里使用正则表达式的目的,除非你喜欢难以想象的痛苦。如果我必须找到重复项,我会
获取单词数组
var words = "...".split(',');
如果您愿意,可以选择将所有内容小写
对数组进行排序
words.sort()
重复项现在应该全部位于数组的连续位置。
作为一个额外的优势,我很确定这会比正则表达式版本更有效。
关于javascript - 改进正则表达式以匹配列表中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458512/