regex |
您所在的位置:网站首页 › 正则表达式匹配重复内容避免匹配全文 › regex |
正则表达式,避免匹配连续字符
时间:2020-05-12 09:06:36
标签: regex 我正在尝试提高我的正则表达式技能。 我无法管理此练习。 https://alf.nu/RegexGolf 您必须匹配没有连续相同字符的单词。 为了清楚起见,我们应该避免使用abba或baab czzc之类的模式。 我看到的唯一方法是使用捕获组: ([a-z])([a-z])\2\1然后进行负面预测: (?!([a-z])([a-z])\2\1)但是在该站点上它不起作用,因为它与任何内容都不匹配。 有什么建议吗? 谢谢 3 个答案:答案 0 :(得分:1) 使用否定前瞻: ^(?:(.)(?!\1))*$说明: ^ from the start of the input (?: (.) match AND capture a single character (?!\1) then assert that what follows is a different character (not the same) )* match zero or more such matching characters $ end of the inputDemo
另一种可能更清洁的方法是在模式开始时先进行全局负向预测: ^(?!.*(.)\1).*$这将在一开始就断言在字符串中的任何位置都没有重复的字符。 答案 1 :(得分:0) 感谢蒂姆·比格莱森(Tim Biegeleisen),这是答案。 ^(?!.*(.)(.)\2\1).*$ 答案 2 :(得分:0) ^(?! cr | pal | tar)[a-z] {1,4}([a-z])\ 1 [a-z] {0,5} $ 在您给的链接中,这对我有用。我猜我们必须将模式与连续的字母匹配。但是有一些例外,一开始我不得不用负面的眼光看待。我已经使用([[a-z])\ 1来匹配连续的字符,并用可能的限制字符包围。希望这可以帮助! 随附屏幕截图以供参考。 https://i.stack.imgur.com/va1Uq.png |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |