【发布时间】:2020-04-07 22:54:24
【问题描述】:
我正在处理一个包含参数的字符串,这些参数由 PHP 中的一些特殊字符与 preg_match 分隔
一个例子可能是这样的,它有四个参数。
1stparm?#?1111?@?2ndParm?#?2222?@?3rdParm?#?3333?@?4thparm?#?444?@?
每个参数名后跟?#?,其值紧挨着它,以?@?结尾(注意:值可以是字符串或数字,甚至是特殊字符)
我的正则表达式可能过于复杂,这在某些情况下有效,但如果我搜索字符串中的最后一个参数,则不会..
此示例返回 2222 作为 2ndParm 的正确值(在第 1 组中)
(?:.*)2ndParm\?#\?(.*?)\?@\?(?=.)(.*)
但如果 2ndParm 是字符串中的最后一个,则失败,如下例所示:
1stparm?#?1111?@?2ndParm?#?2222?@?
如果我只返回一组结果,我也很感激。我无法这样做,但由于我总是得到我对第 1 组感兴趣的那个,所以无论如何我都可以很容易地得到它。
【问题讨论】:
标签: php regex preg-match