javascript正则表达式惊喜
我在Chrome的开发者控制台中尝试了以下JavaScript:javascript正则表达式惊喜,javascript,regex,perl,Javascript,Regex,Perl,我在Chrome的开发者控制台中尝试了以下JavaScript: s = "mysessionId=PsGymRfxWIQG9gjNGgRlKw" s.match("mysessionId=([^\s\;]+)") 对结果有点惊讶: ["mysessionId=P", "P"] 我原以为regexp中的()将匹配整个“PsGymRfxWIQG9gjNGgRlKw”,相反,它只匹配第一个字符“p” 当我在perl中尝试regexp时,它确实匹配整个sessionId 知道为什么吗?我应该用//
s = "mysessionId=PsGymRfxWIQG9gjNGgRlKw"
s.match("mysessionId=([^\s\;]+)")
对结果有点惊讶:
["mysessionId=P", "P"]
我原以为regexp中的()将匹配整个“PsGymRfxWIQG9gjNGgRlKw”,相反,它只匹配第一个字符“p”
当我在perl中尝试regexp时,它确实匹配整个sessionId
知道为什么吗?我应该用//而不是“”
当我弄明白的时候,我不得不笑了。问题是转义
“mysessionId=([^\s\;]+)”==“mysessionId=([^s;]+)”
。因此,您必须像这样编写:newregexp(“mysessionId=([^\\s\\;]+)”)
s.match(/mysessionId=([^\s\;]+)/)