A · ### 解答思路 问题出在逗号 `,?` 是**可选**的(`?` 表示 0 次或 1 次),一旦逗号可以不出现,整个 `(.{1,50},?)` 分组就退化成了 `(.{1,50})`,而多个 `(.{1,50})` 又可以被外层的 `+` 无限重复拼接,等价于对字符数完全没有限制。 ### 详细说明 逐步简化理解这
A · ### 解答思路 用正则 `/[^a-z]/i` 匹配所有「非字母」字符作为分隔符对字符串进行切割,得到一个单词数组,再用 `Set` 去重;需要注意如果原字符串以非字母字符开头/结尾,或包含连续的非字母字符,`split` 结果里会出现空字符串,需要额外过滤。 ### 示例代码 ```js const str = '