为什么。*在regex中的工作方式是这样的

为什么。*在regex中的工作方式是这样的,regex,Regex,我明白。匹配单个字符。 所以。*应该表示任何字符,0次或更多次 所以它应该匹配 AAAAAAAA十次, BBBBBB 9次, “{nothing here}”任何字符0次 但为什么会匹配呢 abasdfasdfadv,因为我看不到任何字符出现0或更多。*表示任何字符出现0或更多,而不是同一个字符重复0或更多次 想象一下。近似于[0x00-0xFF],或者换句话说,任何字符都是可以接受的。请参阅@Rpant也查看此极好的解释:@BartKiers谢谢,该链接有助于理解。点匹配任何字符,星号允许点重

我明白。匹配单个字符。 所以。*应该表示任何字符,0次或更多次

所以它应该匹配 AAAAAAAA十次, BBBBBB 9次, “{nothing here}”任何字符0次

但为什么会匹配呢 abasdfasdfadv,因为我看不到任何字符出现0或更多

。*表示任何字符出现0或更多,而不是同一个字符重复0或更多次


想象一下。近似于[0x00-0xFF],或者换句话说,任何字符都是可以接受的。

请参阅@Rpant也查看此极好的解释:@BartKiers谢谢,该链接有助于理解。点匹配任何字符,星号允许点重复任意次数,所以基本上我们是在重复。尽可能多次,然后点匹配任何字符,而不是用一个字符匹配点,然后期望该字符重复。不包括换行符。所以,几乎任何角色都是可以接受的:这一点很好,我本想解释一下,但后来它变得非常复杂。这里的想法是近似的。是的,指出这个细节可能是有用的,但无论如何,我认为这个答案直接解决了这个问题,而重复问题的答案却没有。我在发布之前也观察到了这种行为并看到了答案,但有些事情看起来不对劲。想象一下特朗普说我会做3次什么。你不会期望他做3件不同的事情。尽管他会。当您说任何内容都将重复0次或更多次时,您希望有一个特定的内容被重复。@r这里的关键是您希望这样,但正则表达式从来都不是这样工作的,因此您需要调整您的期望。在您考虑正则表达式如何看待它之前,它可能没有意义,然后您可以开始更有效地使用它们。