有没有一种简单的方法可以忽略/错过某些字母。问题是找到一个长度为 5 个字母但不包含字母 b、j、m 或 n 的单词。
我可以只指定我想要的字母,例如 [a][ci][kl][o-2]?这看起来不是很干净,我仍然需要指定单词需要 5 个字母长。所以我想我需要一个 /w 和一个 {5} 但不知道如何将它们结合起来。谢谢。
这将选择除 bjmn 之外的所有字符:
[^bjmn]{5}
如果您只想要小写字母,除了您列出的那些:
[c-ik-lo-za]{5}
如果您不希望包含较长单词的 5 个字母单词,请添加单词边界检查:
\b[c-ik-lo-za]{5}\b
这要求一个单词有 5 个字母,但不包括任何bjmn
. 这可以通过使用像 [ac-i] 这样的字母跨度来简化,但是在尝试阅读时往往会有点混乱。
\b([acdefghiklopqrstuvwxyz]{5})\b
如果您也不想要大写字母,请使用 [^bjmn] 或 [^BbJjMmNn]。
而不是[a][c-i][k-l][o-2]
try [ac-ik-lo-z]{5}
,它应该检测由五个允许字母组成的字符串。
编辑:哎呀,你特别想要words。只需测试两边的单词边界,然后:\b[ac-ik-lo-z]{5}\b
- 检查空格会让你错过匹配,如果它是一行的最后一个并且在它之后有一个句点,在它之后有一个逗号,在括号中,等等。
尝试\W[ac-ik-lo-z]{5}\W
(这匹配一组五个字符的任一侧的空白,这些字符不包含您要查找的字符。
如上所述,您可以将多个范围组合到一个列表中。