如何从字符串中提取 ID 号?

如何使用正则表达式或 preg_match 检索中间值?

$str = 'fxs_124024574287414=base_domain=.example.com; datr=KWHazxXEIkldzBaVq_of--syv5; csrftoken=szcwad; ds_user_id=219132; mid=XN4bpAAEAAHOyBRR4V17xfbaosyN; sessionid=14811313756%12fasda%3A27; rur=VLL;'

我如何只从ds_user_id使用正则表达式或 中获取值preg_match


守着一只汪
浏览 253回答 3
3回答

慕的地10843

好吧,没有什么能打败 mickmackusa\K结构。但是,对于\K受损的引擎,这是下一个最好的事情(\d(?<=ds_user_id=\d)\d*)(?=;)解释&nbsp;(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # (1 start), Consume many ID digits&nbsp; &nbsp; &nbsp; \d&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# First digit of ID&nbsp; &nbsp; &nbsp; (?<= ds_user_id= \d )&nbsp; &nbsp; &nbsp; # Look behind, assert ID key exists before digit&nbsp; &nbsp; &nbsp; \d*&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Optional the rest of the digits&nbsp;)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # (1 end)&nbsp;(?= ; )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Look ahead, assert a colon exists这是一个动词解决方案(没有 \K),大约快 %30。&nbsp;(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# (1 start), Consume many ID digits&nbsp; &nbsp; &nbsp; \d&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # First digit of ID&nbsp; &nbsp; &nbsp; (?:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(?<! ds_user_id= \d )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# Look behind, if not ID,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\d*&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# get rest of digits&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(*SKIP)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# Fail, then start after this&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(?!)&nbsp; &nbsp; &nbsp; &nbsp; |&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\d*&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# Rest of ID digits&nbsp; &nbsp; &nbsp; )&nbsp;)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# (1 end)&nbsp;(?= ; )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# Look ahead, assert a colon exists一些比较基准Regex1:&nbsp; &nbsp;(\d(?:(?<!ds_user_id=\d)\d*(*SKIP)(?!)|\d*))(?=;)Options:&nbsp; < none >Completed iterations:&nbsp; &nbsp;50&nbsp; /&nbsp; 50&nbsp; &nbsp; &nbsp;( x 1000 )Matches found per iteration:&nbsp; &nbsp;1Elapsed Time:&nbsp; &nbsp; 0.53 s,&nbsp; &nbsp;534.47 ms,&nbsp; &nbsp;534473 µsMatches per sec:&nbsp; &nbsp;93,550Regex2:&nbsp; &nbsp;(\d(?<=ds_user_id=\d)\d*)(?=;)Options:&nbsp; < none >Completed iterations:&nbsp; &nbsp;50&nbsp; /&nbsp; 50&nbsp; &nbsp; &nbsp;( x 1000 )Matches found per iteration:&nbsp; &nbsp;1Elapsed Time:&nbsp; &nbsp; 0.80 s,&nbsp; &nbsp;796.97 ms,&nbsp; &nbsp;796971 µsMatches per sec:&nbsp; &nbsp;62,737Regex3:&nbsp; &nbsp;ds_user_id=\K\d+(?=;)Options:&nbsp; < none >Completed iterations:&nbsp; &nbsp;50&nbsp; /&nbsp; 50&nbsp; &nbsp; &nbsp;( x 1000 )Matches found per iteration:&nbsp; &nbsp;1Elapsed Time:&nbsp; &nbsp; 0.21 s,&nbsp; &nbsp;214.55 ms,&nbsp; &nbsp;214549 µsMatches per sec:&nbsp; &nbsp;233,046Regex4:&nbsp; &nbsp;ds_user_id=(\d+)(?=;)Options:&nbsp; < none >Completed iterations:&nbsp; &nbsp;50&nbsp; /&nbsp; 50&nbsp; &nbsp; &nbsp;( x 1000 )Matches found per iteration:&nbsp; &nbsp;1Elapsed Time:&nbsp; &nbsp; 0.23 s,&nbsp; &nbsp;231.23 ms,&nbsp; &nbsp;231233 µsMatches per sec:&nbsp; &nbsp;216,232
打开App,查看更多内容
随时随地看视频慕课网APP