是否有一种简单的方法可以忽略/遗漏某些字母。问题是找到一个长5个字母但不包含字母b,j,m或n的单词。
我可以简单地指定我想要的字母,例如[a] [c-i] [k-l] [o-2]吗?这似乎不是很干净,我仍然需要指定单词需要5个字母长。所以我想我需要一个/ w和一个{5},但我不知道如何将它们全部组合起来。 感谢。
答案 0 :(得分:10)
这将选择除bjmn之外的所有字符:
[^bjmn]{5}
如果您只想要小写字母,那么您列出的除外:
[c-ik-lo-za]{5}
如果您不想要5个字母单词作为较长单词的一部分,请添加单词边界检查:
\b[c-ik-lo-za]{5}\b
答案 1 :(得分:0)
而不是[a][c-i][k-l][o-2]
,请尝试[ac-ik-lo-z]{5}
,它应检测五个允许字母的字符串。
\b[ac-ik-lo-z]{5}\b
- 检查空格会让你错过一个匹配,如果它是一行的最后一个并且后面有一个句点,后面有一个逗号,在括号中等等
答案 2 :(得分:0)
如果您也不想要大写的,请使用[^ bjmn]或[^ BbJjMmNn]。
答案 3 :(得分:0)
尝试\W[ac-ik-lo-z]{5}\W
(这会匹配一组五个字符两边的空格,这些字符不包含您要查找的字符。
您可以将多个范围组合到一个列表中,如上所述。
答案 4 :(得分:0)
这需要一个单词有5个字母但不包含任何bjmn
。这可以通过使用像[ac-i]这样的字母跨度来简化,但在尝试阅读时往往会有点混乱。
\b([acdefghiklopqrstuvwxyz]{5})\b