作者:手机用户2502858341 | 来源:互联网 | 2024-12-25 11:01
在处理类 SQL 查询语句时,我们常常需要从字符串中提取出字段名和它们对应的值。例如,给定以下几种查询语句:
1 2 3 4 5 | $query1 = ' title = "test1" AND name = "test2 " '; $query2 = ' title = "test1"'; $query3 = ' title = "test1" OR name = "test2"'; $query4 = ' title = "test1" AND name = "test2" OR name = "test3"'; $query5 = '标题 = "鸟" AND 名字 = "张三" OR name = "test3"'; |
我们需要从中提取出每个字段及其对应的值。对于 $query1,我们希望获取到 title 和 name 字段以及它们的值 test1 和 test2。
为了实现这个目标,可以使用正则表达式来匹配这些模式。以下是一个简单的正则表达式示例,用于匹配字段和值:
preg_match_all('/\s*(\w+)\s*=\s*"([^"]*)"/', $query, $matches);
上述代码将返回一个数组 $matches
,其中包含所有匹配到的字段和值。具体来说:
$matches[1]
包含所有字段名$matches[2]
包含所有对应的值
需要注意的是,此方法适用于基本的键值对形式。如果查询语句更加复杂(如嵌套条件、特殊字符等),可能需要更复杂的正则表达式或解析器。