2025-06-23 问号:可选性匹配的艺术 问号:可选性匹配的艺术 1. 可选性匹配(零次或一次)示例1:匹配"hello"或"world" regex he?llo 在这个例子中,问号使得e字符成为可选的。因此,这个正则表达式可以匹配"hello"或"llo",但不会匹配"helloo"(因为e后面紧跟着一个o)。问号确保了e可以出现也可以不出现,实现了可选性匹配。2. 开启非贪婪模式在默认情况下,正则表达式的量词(如*、+)是贪婪的,它们会尽可能多地匹配字符。通过在量词前加上问号,可以改变其行为为非贪婪(最小匹配),即尽可能少地匹配字符。示例2:匹配最短的可能日期格式 regex \d{2}?-\d{2}-\d{4} 这个正则表达式旨在匹配形如"03-01-2023"的日期格式,其中月和日前的数字是可选的(通过问号实现)。这表示日期可以是"03-1-2023"、"3-1-2023"或"1-2023",但不会匹配像"03-01-2023"这样不省略零的格式。问号在这里启用了非贪婪模式,确保了最短的匹配。3. 注意事项与陷阱 滥用问号:虽然问号提供了很大的灵活性,但过度使用可能导致正则表达式难以理解和维护。合理设计正则表达式结构,避免不必要的可选... 2025年06月23日 2 阅读 0 评论