我认为我理解了如何在正则表达式中使用()分组的理论,但我对我在实践中看到的行为感到惊讶。我很感激有更多知识渊博的人解释正在发生的事情。
我的假设是:
'^.'
将匹配字符串开头的任何字符。这个按预期工作。
'^(.)'
在功能上是相同的,但随后我可以抓住一个分组。这符合我的预期。
'^.+'
将匹配字符串开头的至少一个字符,并转到结尾(即整个字符串)。这个按预期工作。
^(.)\1'
应匹配字符串的前2个字符(如果它们是相同的字符)(即双字母。但是当我运行它时,Python告诉我字符串中没有任何内容匹配。(测试字符串:' eefghijklmnop' - 我认为它会匹配'ee')
'^(.)+'
我认为应该抓住它自己组中字符串中的每个字符 - 除了当我运行它时,我只返回一个字符,它是字符串中的最后一个字符?
有人可以解释一下最后3个案件的情况,以及如何让它按照我的意愿去做 - 在这种情况下,在单词的开头查找双字母?
TIA