背景
我正在处理一小段代码,它将迭代一些动态创建的表单的字段并从中创建数据库选择。
SELECT some_col FROM some_tab WHERE col1=%fieldName1 AND col2=%fieldName2 AND col3=%fieldName3
我遍历表单的字段,我正在替换"%fieldName?"值存储在特定字段中。我的问题是,并非查询字符串中提到的所有字段都可以在表单中列出。因此,在用值替换某些字段名称后,我想从查询字符串中删除其余字段。
问题
我想删除一个以" AND"开头的字符串,以"结尾"并包含" =%"。你能帮我吗?
答案 0 :(得分:1)
你可以用这个:
$query=preg_replace('% AND [a-z0-9A-Z]+\=\%[^\s]+%','',$query);
答案 1 :(得分:1)
使用此:
$replaced = preg_replace('~AND.*?=%\S*[ ]~', '', $yourstring);
<强>解释强>
AND
与文字AND
.*?
懒洋洋地匹配一切...... =%
\S*
匹配任何非空格的字符[ ]
匹配一个空格(不需要括号,但更容易发现)