检查所有字母在 String 中至少出现一次

Checking all letters appear at least once in String

我正在使用这个正则表达式检查每个字母是否至少出现一次:

String regex = "(?i)(?=.*a)(?=.*b)(?=.*c)(?=.*d)(?=.*e)(?=.*f)(?=.*g)(?=.*h)(?=.*i)(?=.*j)(?=.*k)(?=.*l)(?=.*m)(?=.*n)(?=.*o)(?=.*p)(?=.*q)(?=.*r)(?=.*s)(?=.*t)(?=.*u)(?=.*v)(?=.*w)(?=.*x)(?=.*y)(?=.*z).*
"

示例:

The quick brown fox jumps over the lazy dog

包含所有英文字母,但我的正则表达式不起作用。

我做错了什么,或者有没有其他方法可以检查 pangrams

    (?i)^(?=.*a)(?=.*b)(?=.*c)(?=.*d)(?=.*e)(?=.*f)(?=.*g)(?=.*h)(?=.*i)(?=.*j)(?=.*‌​k)(?=.*l)(?=.*m)(?=.*n)(?=.*o)(?=.*p)(?=.*q)(?=.*r)(?=.*s)(?=.*t)(?=.*u)(?=.*v)(?‌​=.*w)(?=.*x)(?=.*y)(?=.*z).*$

添加 anchors ^$ 以进行严格匹配而不是部分匹配。

查看演示。

https://regex101.com/r/vV1wW6/11

有一种比正则表达式更简单、更快速的方法来检查字符串是否为 pangram。

小步走,

  • 将字符串转换为小写
  • 将其缩减为唯一字母
  • 排序
  • 是否等于"abcdefghijklmnopqrstuvwxyz"