首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何提取每行的前5个字符?

如何提取每行的前5个字符?
EN

Stack Overflow用户
提问于 2011-03-17 07:36:53
回答 5查看 420关注 0票数 1

我有一个文本文件,在我的文件里面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
22222   hihihi
33333   hihihi
kjhkh   hihihi

我想写一个与mysql数据库进行比较的应用程序,这样如果我在数据库中的ID与文本文件中的第一列相同,它将通过用文本文件中第二列中的信息替换名称来更新数据。

我该怎么做呢?

EN

回答 5

Stack Overflow用户

发布于 2011-03-18 12:49:59

如上所述,字段由制表符分隔,您可以直接将文件导入MySQL (假设id是该表的主键):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LOAD DATA INFILE 'data.txt' REPLACE INTO TABLE mytable (id,name);

(注意:这不仅会更新条目,还会添加条目)

票数 1
EN

Stack Overflow用户

发布于 2011-06-13 17:42:17

您可以尝试将数据加载到临时表中,运行更新,然后删除临时表-类似于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE dftmp(id VARCHAR(255), name VARCHAR(255));
LOAD DXTX INFILE 'datafile.txt' INTO TABLE dftmp(id,name);
UPDATE real_table,dftmp SET real_table.name=dftmp.name WHERE real_table.id=dftmp.id;
DROP TXBLE dftmp;

(将DXTX替换为DATA,将TXBLE替换为TABLE -上面方式是因为我的工作有一个适当的过滤系统)

有关加载数据的更多信息,请参见http://dev.mysql.com/doc/refman/4.1/en/load-data.html

主要在PHP中处理可能会比较慢,但如果您需要这样做,那么应该是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# make database connection

# open file and get it's contents
$lines = file('datafile.txt');

# for each line in the file
#     split the line into its parts
#     update the DB
foreach ($lines as $line) {
    $line_ar = explode("/\s+/",$line);
    mysql_query("UPDATE t SET name='$line_ar[1]' WHERE id='$line_ar[0]'");
}

# close the database connection

以上代码的潜在陷阱:

对于非常大的文件:您需要一次读取和处理一行混乱的数据文件:您可能需要细化或替换分解的statement

  • unsafe数据:参数化查询并添加检查以避免SQL注入攻击

:您正在进行大量的db调用;考虑最先描述的方法instead

  • fragile :您可以添加检查以查看更新是否成功

有关更多信息,请参阅http://php.net/manual/function.explode.php和mysql-query文档

票数 1
EN

Stack Overflow用户

发布于 2011-03-17 07:41:47

您可以使用explode()将字符串拆分成几行;然后,对于每一行,使用preg_match()函数使用一个简单的正则表达式来匹配您感兴趣的部分。

例如,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$str = <<<STR
22222   hihihi
33333   hihihi
kjhkh   hihihi
STR;

foreach (explode(PHP_EOL, $str) as $line) {
  if (preg_match('/^([^\s]+)\s+(.*)$/', $line, $m)) {
    var_dump($m[1], $m[2]);
  }
}

会给你带来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string '22222' (length=5)
string 'hihihi' (length=6)
string '33333' (length=5)
string 'hihihi' (length=6)
string 'kjhkh' (length=5)
string 'hihihi' (length=6)

关于我使用的正则表达式的注意事项:

字符串开头:^

  • matches任何非白色字符(制表符、换行符、空格):

  • [^\s]
  • one or more [^\s]^
  • matches it:[^\s]+
  • capturing

  • 匹配任何白色字符:\s
    • 一次或多次:\s+

  • 匹配任意次数:捕获它的.*
    • (.*)

最后,字符串的结尾:$

现在,当您将文件作为输入而不是字符串处理时,您可能希望逐行读取文件,而不是将整个文件提取到内存中;有关这一点,请参阅fgets()函数--其手册页面上有一个示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5336173

复制
相关文章
[779]python如何判定字符串的前几个字符是不是数字
正则匹配法比较严谨一些,你说的数字有没有条件限制? 下面是一些常用的判断各种数字的正则表达式:
周小董
2020/03/28
1.4K0
displaytag如何实现获取到每行的id字段的值。
  使用封装好的框架,有时候,对于一个知识点不熟悉,可能会浪费你大把的时间,我使用displaytag主要是使用它的分页技术,但是客户提出的需求,是获取到每行的id,然后选择一个用户名称(用户id),将他们关联操作,其实业务很简单,但是获取到你想要的这一行,一开始确实难为着我了,后来才发现,很简单。
别先生
2019/06/03
4.7K0
如何提取LokiBot的Shellcode
我们可以使用 msoffcrypto-crack.py 破解密码并新建一个没有密码保护的同名文件:
FB客服
2021/10/11
8620
每行字符数(CPL)的起源
前几天,我收到网友小龙的Email。 他想与我讨论一个问题: "各种计算机语言的编码风格,有的建议源码每行的字符数(characters per line)不超过72个,还有的建议不超过80个,这是
ruanyf
2018/04/12
1.2K0
每行字符数(CPL)的起源
【RPA技术】前 5 个开源 RPA 框架——以及如何选择
在许多组织中,自动化和人工智能/机器学习的第一步是采用机器人过程自动化 (RPA) 技术。
架构师研究会
2022/07/29
7.8K0
spark dataframe操作集锦(提取前几行,合并,入库等)
spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能。当然主要对类SQL的支持。
sparkexpert
2022/05/07
1.4K0
学习R编程的前5门课程
越来越多的程序员正在学习R编程语言以成为一名数据科学家,这是全球最热门,最高薪的技术工作之一。
February
2018/12/04
7780
读取文档数据的各列的每行中
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117322.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/06
2K0
TOP 5% Kaggler:如何在 Kaggle 首战中进入前 10% | 干货
编者按:本文作者章凌豪,复旦大学计算机科学专业。有兴趣的同学可以移步他的个人主页:https://dnc1994.com/Introduction(点击文末“阅读原文”跳转) █ 章凌豪:Kaggle 是目前最大的 Data Scientist 聚集地。很多公司会拿出自家的数据并提供奖金,在 Kaggle 上组织数据竞赛。我最近完成了第一次比赛,在 2125 个参赛队伍中排名第 98 位(~ 5%)。因为是第一次参赛,所以对这个成绩我已经很满意了。在 Kaggle 上一次比赛的结果除了排名以外,还会显示的就
AI研习社
2018/03/29
1.3K0
TOP 5% Kaggler:如何在 Kaggle 首战中进入前 10% | 干货
如何提取在线音频?在线音频提取工具推荐!
4K YouTube to MP3是一款强大好用的在线音频提取工具,专门用于从YouTube,VEVO,SoundCloud和Facebook以MP3,M4A,OGG进行音频提取。
啾咪啾咪
2022/09/11
6.4K0
如何提取列表所有层级的数据?
解释:这里使用了递归方式来进行求解。同时这里使用了一个小技巧,is type的写法,实际上这个写法是和Value.Is(值,type 类型)写法相同。递归结束条件为列表中的值不等于list格式。
逍遥之
2020/03/24
1.9K0
如何提取列表所有层级的数据?
HDFS系列(5) | 进行API操作前的准备
所用jar包的连接如下: 链接:https://pan.baidu.com/s/1krbLrnejfXSsLppauxrCTg 提取码:jbsr
不温卜火
2020/10/28
3730
HDFS系列(5) | 进行API操作前的准备
如何提取PPT中的所有图片
1、 首先,我们打开一个含有图片的PPT,点菜单“文件”--“另存为”;在“另存为”对话框中,选择保存类型为“网页”,点保存; 2、打开我们保存文件的目录,会发现一个带有“******.files”的文件夹; 3、双击该文件夹,里面的文件类型很多,再按文件类型排一下序,看一下,是不是所有的图片都在里面了,一般图片为jpg格式的;
P轴
2022/11/18
7K0
eeglab教程系列(5)-提取数据epoch
为了研究连续记录数据的事件相关脑电图动力学,可以通过选择Tools > Extract Epochs来提取与感兴趣事件锁定的数据时间段(例如,数据时间段锁定为一类实验刺激的集合)。
脑机接口社区
2020/06/29
7280
你的每行代码值多少钱?
我知道,“line of code”(LoC)是一种非常愚蠢的计量方式。不要急着喷我,请大家先听我讲讲我最近参与的两个项目,看一下一些非常有意思的数字。
哲洛不闹
2018/09/18
1.6K0
你的每行代码值多少钱?
如何从网站提取数据?
在当今时代,根据数据情况来制定业务决策是许多公司的头等大事。为了推动这些决策,公司全天候跟踪,监视和记录相关数据。幸运的是,很多网站的服务器上存储了大量公共数据,可以帮助企业在竞争激烈的市场中保持领先地位。
用户7850017
2021/01/29
3.1K0
开发 | TOP5%Kaggler:如何在 Kaggle 首战中进入前 10%
Introduction Kaggle 是目前最大的 Data Scientist 聚集地。很多公司会拿出自家的数据并提供奖金,在 Kaggle 上组织数据竞赛。我最近完成了第一次比赛,在 2125 个参赛队伍中排名第 98 位(~ 5%)。因为是第一次参赛,所以对这个成绩我已经很满意了。在 Kaggle 上一次比赛的结果除了排名以外,还会显示的就是 Prize Winner,10% 或是 25% 这三档。所以刚刚接触 Kaggle 的人很多都会以 25% 或是 10% 为目标。在本文中,我试图根据自己第一
AI科技评论
2018/03/12
1.6K0
开发 | TOP5%Kaggler:如何在 Kaggle 首战中进入前 10%
大规模异步新闻爬虫【5】:网页正文的提取
前面我们实现的新闻爬虫,运行起来后很快就可以抓取大量新闻网页,存到数据库里面的都是网页的html代码,并不是我们想要的最终结果。最终结果应该是结构化的数据,包含的信息至少有url,标题、发布时间、正文内容、来源网站等。
一墨编程学习
2019/05/14
1.7K0
大规模异步新闻爬虫【5】:网页正文的提取
Python 如何提取邮件内容
今天分享的文章主要讲解如何从邮件里面提取用户返回的线上问题内容并做解析,通过拿到的数据信息进行分析整理,然后进行封装请求禅道里的接口进行提交,提交请求过程中会对数据库中是否存在进行一次判断处理,如果没有存在的就提交,如果数据库中存在就不用再提交,基于这个思路来看下今天的分享。
Wu_Candy
2022/07/04
9900
点击加载更多

相似问题

如何替换每行出现的前n个字符?

30

如何只保留每行的前300个字符?

10

前5个字符

213

diff文件仅比较每行的前n个字符

33

如何用铅笔码每行打印5个字符?

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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