问题描述
正则: .*(((?i)phpsessid|sessionid)=.*?)(\?|&|$).* str: http://www.foo.com/foo.html;jsessionid=1E6FEC0D14D044541DD84D2D013D29ED?param=1&another=2结果groups: 40: http://www.foo.com/foo.html;jsessionid=1E6FEC0D14D044541DD84D2D013D29ED?param=1&another=21: sessionid=1E6FEC0D14D044541DD84D2D013D29ED2: sessionid3: ?问号去掉正则: .*(((?i)phpsessid|sessionid)=.*)(\?|&|$).* 结果groups: 40: http://www.foo.com/foo.html;jsessionid=1E6FEC0D14D044541DD84D2D013D29ED?param=1&another=21: sessionid=1E6FEC0D14D044541DD84D2D013D29ED?param=1&another=22: sessionid3: 怎么解释这个问号的作用呢
解决方案
*?指非贪婪匹配,即找到了匹配项就结束,跳到下个位置如aaa来匹配a*?,你就会找出三个a来,而用a*来匹配就会找出aaa来。大致意思就是如此
时间: 2024-09-04 09:54:09