Perl正则表达式为英文单词

itz*_*tzy 3 regex perl words

我需要一个能找到任何看起来像英文单词的正则表达式.特别是,当字符串具有以下内容时,我希望表达式匹配:

1)只有字母; 和

2)至少两个不同的字母.(我故意排除一个字母的单词.)

所以,我在找的东西,将匹配theabracadabra,但不会aaa.

任何帮助深表感谢.

mar*_*cog 7

也许\b(\w*(\w)\w*(?!\2)\w+)\b对你有用.它处理你给出的例子.

它匹配\w组中的字母,然后使用反向引用和负向前瞻查找除字母之外的其他内容(?!\2).我们在最后匹配至少一个字符,这是使负前瞻力至少有一个不同的字符所必需的.然后我们放置额外的\w*'s以允许额外的字母.\b确保比赛的结尾处于单词边界.

http://www.rubular.com/r/pwjGi9eLf5

请注意,这不是与英语单词匹配的超级正则表达式.为此,您想要与字典进行比较.但这似乎不是你想要做的.