我有字符串{tender id="2,3"}
或{tender catid="2" id="2,3"}
或{tender catid="2"}
我用
$regex = "/{tender ((.*?id\s*=\s*['\"](.*?)['\"]) (.*?id\s*=\s*['\"](.*?)['\"]))}/";
但只有当我在字符串中同时包含id和catid ....如果只有一个参数在字符串中,我如何编写正则表达式?
答案 0 :(得分:0)
尝试:{tender (?:cat)?id="(\d+,?)+"}
如果它不适合您,您可能需要指定其他详细信息。根据您的要求,只有当catid
或id
位于数据结构中时才会匹配(例如,案例1和3)。
{tender
数据的开头。(?:cat)?
抓住cat
,如果可以id="
获取id的开头(\d+,?)+
获取可能会或可能不会包含逗号的数字"}
数据结束。