gpt4 book ai didi

php - 要捕获的动态正则表达式

转载 作者:搜寻专家 更新时间:2023-10-31 21:30:07 27 4
gpt4 key购买 nike

不确定是否真的可行,但请考虑以下文本:

INSERT INTO cms_download_history
SET
user_id = '{$userId}',
download_id = '{$fileId}',
remote_addr = '{$remote_addr}',
doa = GetDate()";

我想把它改成:

INSERT INTO cms_download_history
(user_id,download_id,remote_addr,doa)
VALUES('{$userId}','{$fileId}','{$remote_addr}',GetDate());

做一个正则表达式来查找和替换这个很容易,因为我知道我有多少列,但是如果我在不知道列数的情况下尝试对多个类似查询执行此操作怎么办,即:

INSERT INTO mystery_table
SET
col1 = val1
col2 = val2
.... unknown number of columns and values.

是否有我可以编写的动态正则表达式来检测该示例?

最佳答案

实际上,如果所有查询看起来像这样,只有可变数量的列,您可以使用稍微简单的正则表达式获取字段名称:

(\w+)\W*=\W*['"].+?(?!\\)['"],

Here is an example .这是它的作用:

  • 它捕获一个或多个单词字符,如果后跟:
    • 零个或多个空白字符
    • 等号
    • 零个或多个空白字符(再次)
    • A '"(字符串的开始)
    • 一个或多个字符
    • 未转义的 '"
    • 逗号

请注意,这确实假定所有值都是字符串。如果您还需要数字支持,请告诉我。

关于php - 要捕获的动态正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30858490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com