宇宙主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

欧基零壹微头条IP归属甄别会员请立即修改密码
楼主: sqlemma

[美国VPS] 付费求助一个正则表达式提取数据的问题,50块钱

[复制链接]
发表于 2024-6-19 16:38:30 | 显示全部楼层
sqlemma 发表于 2024-6-19 16:36
我这门外汉,都看不懂,这是python实现的?

这是linux shell,在linux命令行运行就能看到结果。
你的需求,需要专门写一个软件,连接数据库,逐行处理。
 楼主| 发表于 2024-6-19 16:40:26 | 显示全部楼层
jekyll 发表于 2024-6-19 16:38
这是linux shell,在linux命令行运行就能看到结果。
你的需求,需要专门写一个软件,连接数据库,逐行处理 ...

是的,不过我不懂数据库,帮别人搞的
估计难搞哦
发表于 2024-6-19 16:47:23 | 显示全部楼层
sqlemma 发表于 2024-6-19 16:40
是的,不过我不懂数据库,帮别人搞的
估计难搞哦

能看出来啊,你问题问的就外行,我都怀疑数据处理逻辑是不是你表达的那样。
你的标题是需要一个处理数据的逻辑,这个回帖里很多人都已经告诉你了,不需要正则,直接用逗号分割数组重新组合即可。
但你实际的需求其实不止这个,还要读取数据库,再写入数据库,但是你连数据库是什么类型都不说。系统环境是什么也没说。
发表于 2024-6-19 16:57:11 来自手机 | 显示全部楼层
用正则也行,要用分组
发表于 2024-6-19 19:23:19 | 显示全部楼层
没必要用正则,参考1楼的思路即可。

关键是这是别人的数据库,数据库大小超过1G 。

而且楼主完全是外行,需求描述很模糊,提供的信息量太少。

哪怕这个单子我可以做,我也不敢接单。
发表于 2024-6-19 19:58:11 | 显示全部楼层
本帖最后由 isxuew 于 2024-6-19 21:18 编辑

如图
---
字数太少被折叠了,重新编辑一下
发表于 2024-6-19 20:01:47 | 显示全部楼层
sqlemma 发表于 2024-6-19 16:22
大文件处理,GPT可以处理1G以上的文件?

大佬为什么我找不到GPT资源 还是这些都是收费的
发表于 2024-6-19 20:36:24 来自手机 | 显示全部楼层
sqlemma 发表于 2024-6-19 16:36
我这门外汉,都看不懂,这是python实现的?

贴主最好是帖点实际数据出来,要看数据结构才好上菜。比如:1、你括号中内容是某一个字段中的全部内容?还是截取了一部分?2、这个字段中每一行的内容结构都是一样的么?取值位置也是一样的么?(通俗点讲{}里逗号数量是不是一样的,还有就是每一个{}里都是取第135逗号前的值么)。
发表于 2024-6-19 20:46:24 | 显示全部楼层
要实现这个功能,你可以使用 PHP 来处理这类字符串数据。下面是一个示例代码,展示了如何从一行字符串中提取特定的字段,并将它们放在新的同一行中。

首先,假设你的原始字符串存储在一个变量中,然后你可以使用正则表达式或字符串函数来提取你需要的部分。这里我使用了 explode() 和 in_array() 函数组合来实现这一点:
  1. <?php
  2. // 原始数据字符串
  3. $originalString = "{anb_bd,9636115881,562d2,85sdfk,52 pol polinner,999lkU,pol55-96}";

  4. // 去掉花括号
  5. $trimmedString = trim($originalString, "{}");

  6. // 分割字符串为数组
  7. $elements = explode(",", $trimmedString);

  8. // 定义需要提取的字段
  9. $neededElements = ["anb_bd", "9636115881", "52 pol polinner"];

  10. // 提取需要的字段
  11. $extractedElements = array_filter($elements, function($element) use ($neededElements) {
  12.     return in_array($element, $neededElements);
  13. });

  14. // 将提取出的字段组合成新的字符串
  15. $newString = "{" . implode(",", $extractedElements) . "}";

  16. echo $newString;
  17. ?>
复制代码

这段代码首先将原始字符串中的花括号去掉,然后将剩余部分分割成数组。之后,它使用 array_filter() 和 in_array() 函数来检查每个元素是否是需要提取的字段。最后,使用 implode() 函数将提取出的字段重新组合成一个新的字符串,并添加花括号。

这样,你就可以得到一个新的字符串,其中只包含你想要保留的字段,并且格式符合你的要求。
发表于 2024-6-19 21:06:01 来自手机 | 显示全部楼层
很明显 这个字段是数据表中的字符串数组类型。根本不用使用正则表达式。一行sql搞定。不过sql发不出来 被网站屏蔽了。不怪我咯
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|FastFib VPS论坛

GMT+8, 2024-9-20 12:03 , Processed in 0.064782 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表