繁体   English   中英

正则表达式以匹配Php中的多个模式

[英]Regular Expression to match multiple patterns in Php

我尝试从以下字符串中提取Cookies:

< Server: Apache
< Set-Cookie: fe_typo_user=b4f33487c434684655dccf65a0499010; path=/
< Set-Cookie: PHPSESSID=d8pgb31olkc9c1jc5tc5qn23a1; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT

因此我尝试了

/.*Set-Cookie: (.*?); /s

那不应该让我在“ Set-Cookie:”和“;”之间出现所有的字符串吗?

我收到了:

array(2) {
   [0]=> string(137) \"< Server: Apache
         < Set-Cookie: fe_typo_user=b4f33487c434684655dccf65a0499010; path=/
         < Set-Cookie: PHPSESSID=d8pgb31olkc9c1jc5tc5qn23a1; \"
   [1]=> string(36) \"PHPSESSID=d8pgb31olkc9c1jc5tc5qn23a1\"
}

感谢您的解释。

preg_match_all('/Set-Cookie: (.*?);/is', $data, $result);

得到:

Array
(
    [0] => Array
    (
        [0] => Set-Cookie: fe_typo_user=b4f33487c434684655dccf65a0499010;
        [1] => Set-Cookie: PHPSESSID=d8pgb31olkc9c1jc5tc5qn23a1;
    )

    [1] => Array
    (
        [0] => fe_typo_user=b4f33487c434684655dccf65a0499010
        [1] => PHPSESSID=d8pgb31olkc9c1jc5tc5qn23a1
    )

)

只需删除第一个.*并使用preg_match_all:

preg_match_all('/Set-Cookie: (.*?); /s', $str, $m);

试试这个

/Set\\-Cookie:\\ ([^;]+);/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM