我有一个可能非常大的提交类型输入按钮列表,其名称为delete0
,delete1
,delete2
等等,我正在尝试使用{{1} }匹配preg_match
数组中单击的按钮并删除附加的数字,所以我可以从mysql表中删除该数字。
问题是我的$_POST
在看起来应该是贪婪的时候并不乖。例如,如果我使用按钮preg_match
提交,我将获得delete13
的匹配,delete1
我获得delete23
的匹配等。
以下是我的模式和逻辑:
delete2
答案 0 :(得分:1)
小修:
/,?(delete)(\d+),?/
您正在捕获正在重复的模式:(\d)+
,因此只有最后一次重复的子字符串应保留在捕获组中(单个数字)。 (\d+)
将捕获子字符串,其中包含所有重复的数字。
作为进一步改进,第一个捕获组不是必需的:
/,?delete(\d)+,?/
因此,您可以使用delete
matches[1]
之后的数字
答案 1 :(得分:1)
更改
$pattern = "/,?(delete)(\d)+,?/";
到
$pattern = "/,?(delete)(\d+),?/";