【问题标题】:How to stop Repeating characters at 2? REGEX如何在 2 处停止重复字符?正则表达式
【发布时间】:2015-08-11 20:34:01
【问题描述】:

(\b(?:([A-Za-z0-9])(?!\2{2}))+\b) 确实如此。但是当像“pepper”这样的字符串出现时,它不会命中。当有连续的​​ 3 个重复字符时,它会命中。 ??有什么线索吗?

【问题讨论】:

  • 不清楚,你想达到什么目的?发布一些有效和无效匹配的示例。或预期的输出。
  • 最大重复字符数应为 2。无论重复发生在何处。
  • 应该点击apppa。应该打爸爸。如果字符超过 2 次重复,它应该命中。 :(

标签: asp.net regex regex-negation regex-lookarounds regex-greedy


【解决方案1】:
\b(?=\S*(.)\S*\1)(?!\S*(\S)\S*\2\S*\2)[a-zA-Z0-9]+\b

你可以试试这个。查看演示。

https://regex101.com/r/aG0sF5/5

【讨论】:

  • 最大重复字符数应为 2。无论重复发生在何处。应该打爸爸,应该打apppa。应该打爸爸。如果字符超过 2 次重复,它应该命中。 :( 太混乱了!
  • qwerty123 没有重复字符,所以没有。它不会被击中。 :)
  • 最后一个疑问。它也检测重复的数字。它不需要。只有重复的字符。我如何不检查数字?我尝试删除“0-9”部分,但没有帮助。
  • 这样吗? " \b(?![a-zA-Z]*([a-zA-Z])[a-zA-Z]*\1[a-zA-Z]*\1)[a-zA-Z ]+\b"
  • @George \b(?=\S*([a-zA-Z])\S*\1)(?!\S*([a-zA-Z])\S*\2\S*\2)[a-zA-Z0-9]+\b regex101.com/r/aG0sF5/6
猜你喜欢
  • 1970-01-01
  • 2012-10-05
  • 1970-01-01
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 2016-11-25
相关资源
最近更新 更多