c# - 如何匹配包含多个字符的单词?

标签 c# regex

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

这不应该匹配: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/

相关文章:

javascript - 下载文件时,我收到来自 Web API 调用的响应

python - Python 中的正则表达式不匹配字符串(但在检查 rubular 时匹配)

javascript - 用于检查字符串格式的正则表达式

regex - 使用 GNU sed 在插入或附加行中重用匹配的模式

python - 使用Python的regex .match()方法获取下划线前后的字符串

regex - 如何对字符串进行正则表达式-长度8,首个字母和其余数字

c# - 如何在 Documentdb 中创建一个自动递增的列

c# - 无法解析数据类型 XAML C#

c# - 从 UWP 应用程序运行外部 exe,解决沙盒模式

c# - 如何将文本框设置为可见 false 但仍可在其上书写?