宇宙主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

欧基零壹微头条IP归属甄别会员请立即修改密码
查看: 1597|回复: 23

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

[复制链接]
发表于 2024-6-19 16:19:12 | 显示全部楼层 |阅读模式
意思就是要提取数据库中,一行长段字符里面的部分字段,并且放在同一行中
比如

这是一行数据库中的字段,{anb_bd,9636115881,562d2,85sdfk,52 pol polinner,999lkU,pol55-96}
我要下面三个值
anb_bd
9636115881
52 pol polinner

提取出来后,所有字段也要在新的文本的同一行中
像这样{anb_bd,9636115881,52 pol polinner}

上面是例子,实际上要处理的跟上面的举例差不多

有技术的联系
https://t.me/TaleSc0
发表于 2024-6-19 16:22:21 | 显示全部楼层
这样的话似乎没必要拿正则吧,掐头去尾俩括号,逗号分割,再用下标取
发表于 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 16:22:20 | 显示全部楼层
直接问chatgpt
 楼主| 发表于 2024-6-19 16:22:33 | 显示全部楼层

大文件处理,GPT可以处理1G以上的文件?
 楼主| 发表于 2024-6-19 16:25:11 | 显示全部楼层
sym3786586 发表于 2024-6-19 16:22
这样的话似乎没必要拿正则吧,掐头去尾俩括号,逗号分割,再用下标取

不用正则更好,只要能实现就行
发表于 2024-6-19 16:25:51 | 显示全部楼层
input="{anb_bd,9636115881,562d2,85sdfk,52 pol polinner,999lkU,pol55-96}" && IFS=',' read -r -a array <<< "$input" && output="${array[0]},${array[1]},${array[4]}}" && echo $output
发表于 2024-6-19 16:36:18 | 显示全部楼层
根据下标取出来再拼起来?几行python代码就行了,正则不适合做这个
 楼主| 发表于 2024-6-19 16:36:23 | 显示全部楼层
jekyll 发表于 2024-6-19 16:25
input="{anb_bd,9636115881,562d2,85sdfk,52 pol polinner,999lkU,pol55-96}" && IFS=',' read -r -a array ...

我这门外汉,都看不懂,这是python实现的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-20 08:52 , Processed in 0.066148 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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