我想使用正则表达式来匹配具有多个字符的所有单词,而不是完全由相同字符组成的单词。
这不应该匹配:ttttt、rrrrr、gggggggggggggg
这应该匹配:rttttttt、word、wwwwwwwwwu
最佳答案
下面的表达式就可以了。
^(?<FIRST>[a-zA-Z])[a-zA-Z]*?(?!\k<FIRST>)[a-zA-Z]+$
- 捕获组中的第一个字符
FIRST
- 捕获更多字符(懒惰地避免回溯)
- 使用否定先行断言确保下一个字符不同于
FIRST
- 捕获所有(至少一个由于断言)剩余的字符
请注意,查找与第一个字符不同的字符就足够了,因为如果没有字符与第一个字符不同,则所有字符都是相等的。
您可以将表达式缩短为以下内容。
^(\w)\w*?(?!\1)\w+$
这将匹配除 [a-zA-Z] 之外的更多字符。
关于c# - 如何匹配包含多个字符的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/825139/