\b\w*?(\w)\1*(?:(?!\1)\w)\w*\b
или
\b(\w)(?!\1*\b)\w*\b
Это предполагает, что вы вырываете слова из какого-то более крупного текста; вот почему ему нужны границы слова и отступы. Если у вас есть список слов, и вы просто пытаетесь проверить те из них, которые соответствуют критериям, вероятно, гораздо более простое регулярное выражение:
(.)(?:(?!\1).)
... потому что вы уже знаете, что каждое слово содержит только слова. С другой стороны, в зависимости от вашего определения слова, вам может понадобиться заменить \w
в первых двух регулярных выражениях чем-то более конкретным, например [A-Za-z]
.