Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >查找并连接生成一个模式。

查找并连接生成一个模式。
EN

Stack Overflow用户
提问于 2012-05-27 12:06:33
回答 3查看 187关注 0票数 0

我有一个很长的PHP文件,我只想复制所有的变量名,并构建一个insert sql查询。是否有一种方法可以使用正则表达式搜索模式并将查找结果连接起来,直到我收集所有变量并在语句中将其吐出?

我正在使用TextMate,并且熟悉正则表达式搜索。Regex搜索结果提供$0、$1等参数。但不知道这是否可能。任何编辑器中的解决方案都不只是文本匹配。

我只是有太多的变量(+100)这里是我的样本文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ID = $_POST['id'];
$TXN_TYPE = $_POST['txn_type'];
$CHARSET = $_POST['charset']
$CUSTOM = $_POST['custom'];
EN

回答 3

Stack Overflow用户

发布于 2012-05-27 12:34:54

您可以使用get_defined_vars()尝试一些东西。但是,该函数还列出了全局vars。如果不需要,可以使用此代码段删除它们,并且只显示您定义的var。

$variables = array_diff(get_defined_vars(),array(array();

然而,这个片段会生成通知,而我还没有找到解决它们的方法。

如果只有$_POST变量,则可以循环遍历$_POST数组本身,在遍历数组时以编程方式创建SQL。

票数 1
EN

Stack Overflow用户

发布于 2012-05-27 12:27:48

我自己的解决办法是,做相反的事情。这可能是不可能的。

只保留变量名,移除其余的变量名。使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[space].+  regex to remove everything that is after the variable name.

清理文件,以便只留下变量名。然后再做几次查找和替换,以将变量名以您想要的形式带来。

票数 0
EN

Stack Overflow用户

发布于 2012-05-27 12:41:37

如果您只想匹配变量名(而不是$_POST数组索引),那么正则表达式基本上是提供在PHP文档中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

当然,这将包括$_POST,但这应该很容易删除。如果没有,则可以采用负前瞻性(如果TextMate支持它):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\$(?!_POST($|[^a-zA-Z0-9_\x7f-\xff]))[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10776857

复制
相关文章
查找并删除
find . -name '*.png' -type f -print -exec rm -rf {} \; find . -type f -name "*.log" -print0 | xargs -0 rm -f 指定一个替换字符串 {} XRSec has the right to modify and interpret this article. If you want to reprint or disseminate this article, you must ensure the inte
XRSec
2022/03/15
1.1K0
[Linux笔记] 查找并关闭进程
注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。
科控物联
2022/06/13
2.2K0
[Linux笔记] 查找并关闭进程
查找python项目依赖并生成requirements.txt与安装,指定路径
Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。 我的是python -m 指定python类型,如果你只有一个版本直接用pip freeze >requirements.txt即可
学到老
2019/02/14
1.9K0
文件中查找并删除<feff>
字节顺序标记(英语:byte-order mark,BOM)是位于码点U+FEFF的统一码字符的名称。当以UTF-16或UTF-32来将UCS/统一码字符所组成的字符串编码时,这个字符被用来标示其字节序。它常被用来当做标示文件是以UTF-8、UTF-16或UTF-32编码的记号。 有时候会在处理文本中碰到,需要对其处理,处理方法如下: 删除 :g/[\uFEFF]/d 查找 /[\uFEFF] Python \ufeff
Tyan
2017/12/28
3.3K0
查找python项目依赖并生成requirements.txt与安装,指定路径
Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。 我的是python -m 指定python类型,如果你只有一个版本直
学到老
2018/03/16
2.1K0
查找python项目依赖并生成requirements.txt与安装,指定路径
linux查找进程,查找僵死进程,查找僵死进程并自动杀掉
查找进程:     ps -aux | grep  flume  /  netstat -anop | grep 8080(端口号) 常规杀进程: kill  pid 查看僵死进程:   ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' 杀掉 kill -9 pid 自动查杀僵死进程指令: ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9 参考: http:/
Gxjun
2018/03/27
4.1K0
分享一个免费并开源的SSH连接工具
electerm 开源地址 https://github.com/electerm/electerm/releases 官网 https://electerm.html5beta.com/ 下载过慢可以试试我下载好的 链接:https://pan.baidu.com/s/1lkIDdjZ1O45G0EmsysY_QA 提取码:hbiz 中文设置 新建SSH连接 其他功能 还有一些功能,这里就不介绍了,自己去玩耍吧!
用户9006224
2022/12/21
7340
分享一个免费并开源的SSH连接工具
Windows查找进程并关闭
tasklist /v | findstr "**" ---- 找程序名为**的进程
科控物联
2022/04/20
2.3K0
Windows查找进程并关闭
python连接并使用redis
Redis是一个强大的非关系型数据库,在python中同样可以使用redis,在python中称之为redis-py,分为2.0和3.0版本,下面均为3.0版本代码,以扩展类形式进行安装使用。
申霖
2020/01/20
1.1K0
docker安装redis并连接
用户8200753
2023/10/22
2370
docker安装redis并连接
LeetCode - 查找和替换模式
原题地址:https://leetcode-cn.com/problems/find-and-replace-pattern/
晓痴
2019/07/30
8470
MYSQL连接协议解析 并使用PYTHON模拟连接
了解了mysql的连接协议后, 就可以直接写mysql连接(驱动)了, 就可以模拟mysql client去连接数据库了, 还能模拟mysql服务端, 就可以制作mysql中间件来做读写分离, 分布式数据库 之类的了. 不过本文不会讲到那么多.
大大刺猬
2023/03/19
2K0
MYSQL连接协议解析  并使用PYTHON模拟连接
查找生成文件的进程
   作为运维经常发现一些很大的log文件,不知道怎么出来的,不知道能不能删掉。例子中的大log我已经删掉,现在又生成的小文件。
一夕如环
2021/03/17
1.5K0
查找生成文件的进程
unity3d:查找子物体,并输出路径,GetComponentsInChildren,递归查找,栈查找
分为两步: 1.找到子物体的transform 2.通过child.parent = root,输出路径
立羽
2023/08/24
1.1K0
unity3d:查找子物体,并输出路径,GetComponentsInChildren,递归查找,栈查找
Windows 查找被占用端口并结束程序
常常由于开启某项服务而端口已经被其他服务或者同服务的应用所占用,导致我们无法再成功开启一个应用服务.在linux中对进程的查找以及"杀掉”,都是比较容易记忆的操作.
caoayu
2020/09/23
7570
Windows 查找被占用端口并结束程序
python连接sql server并执
python操作sql server,可以使用pymssql,成功安装pymssql后,按照如下的方法,可以连接数据库并执行查询操作:
py3study
2020/01/07
8220
Python连接impala并获取数据
1、下载并安装Python package:impyla-0.14.0.tar.gz
py3study
2020/01/09
2.8K0
使用 Docker 安装并连接 MySQL
作为开发,在本机捣鼓一下 Docker 还是很有必要的,本篇文章介绍如何使用 Docker 安装 MySQL,并在终端(iTerm2)使用命令连接 MySQL。
程序员小航
2021/07/09
1.4K0
MYSQL查找数据库数据并拼接
查找数据库全部表名并拼接 SELECT GROUP_CONCAT('"' ,table_name ,'"') FROM information_schema.TABLES WHERE table_schema = '表名' 查找表中所有字段并拼接 SELECT GROUP_CONCAT( '"',column_name, '"') FROM information_schema.COLUMNS WHERE table_name = 'exam_answer'
芈亓
2022/06/17
2K0
点击加载更多

相似问题

查找模式并替换

218

查找第一个模式并检索直到下一个模式查找的数据

114

用其他模式查找并替换模式匹配

20

查找并替换特定的模式

24

用RegEx查找模式并替换

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文