【发布时间】:2011-11-19 19:24:51
【问题描述】:
我是正则表达式的初学者,所以没过多久我就完全迷失了:]
我需要做什么:
我有一串值 'a:b,a2:b2,a3:b3,a4:b4' 我需要通过第二个值搜索特定的一对值(即:a2:b2)给定的对 (b2) 并获得该对的第一个值作为输出 (a2)。
允许使用所有字符(除了分隔每对值的“,”),并且第二个值(b、b2、b3、b4)中的任何一个都是唯一的(在字符串中不能出现多次)
让我举一个更好的例子,因为前面可能不太清楚:
这是一个字符串:2分钟:2,5分钟:5,10分钟:10,15分钟:15,never:0
搜索到的模式是:5
我认为,最好的方法是使用名为 preg_match 的函数和子模式功能。
所以我尝试了以下方法:
$str = '2 minutes:2,5 minutes:5,10 minutes:10,15 minutes:15,20 minutes:20,30 minutes:30, never:0';
$re = '/(?P<name>\w+):5$/';
preg_match($re, $str, $matches);
echo $matches['name'];
想要的输出是“5 分钟”,但没有用。
我也想坚持使用 Perl-Compatible reg。上述代码中的表达式包含在 PHP 脚本中。
谁能帮帮我?我现在有点绝望了,因为我现在大部分时间都在这上面度过......
谢谢大家。
【问题讨论】:
标签: php regex preg-match