如何匹配多个字符的单词?

Phi*_*Hoy 3 c# regex

我想使用正则表达式来匹配具有多于一个字符的所有单词,而不是完全由相同字符组成的单词.

这应该不匹配:ttttt,rrrrr,ggggggggggggg

这应该匹配:rttttttt,word,wwwwwwwwwu

Dan*_*ner 6

以下表达式将起到作用.

^(?<FIRST>[a-zA-Z])[a-zA-Z]*?(?!\k<FIRST>)[a-zA-Z]+$
Run Code Online (Sandbox Code Playgroud)
  • 将第一个字符捕获到组中 FIRST
  • 捕捉一些更多的角色(懒洋洋地避免回溯)
  • 确保下一个字符与FIRST使用否定先行断言不同
  • 捕获所有(至少一个由于断言)剩余的字符

请注意,足以查找与第一个字符不同的字符,因为如果没有字符与第一个字符不同,则所有字符都相等.

您可以将表达式缩短为以下内容.

^(\w)\w*?(?!\1)\w+$
Run Code Online (Sandbox Code Playgroud)

这将匹配[a-zA-Z]以外的其他一些字符.