找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 78|回复: 7

正则匹配有人会吗?(已解决)

[复制链接]

98

主题

448

回帖

1268

积分

金牌会员

积分
1268
发表于 2019-3-4 22:18:25 | 显示全部楼层 |阅读模式
本帖最后由 doing 于 2019-3-4 23:45 编辑

记事本里格式是:
25612----寒日气----男----上海----29----本科
45466----值得----男----山东----23----本科
56756----输合----男----河南----26----本科
67456----七维影----男----广东----28----本科
95676----冷心为王----男----江苏----22----本科
......


想把每行的第一个----替换成AAAA,第二个----替换成BBBB,第三个----替换成CCCC,第四个----替换成DDDD


用什么软件该怎么弄?本人菜鸟,希望大佬直接贴出命令,万分感谢









==============

几种方法我都试了,都完美可行,非常感谢。可惜也不能设置悬赏啥的,每次白提问都有点不好意思
回复

使用道具 举报

3

主题

441

回帖

915

积分

高级会员

积分
915
发表于 2019-3-4 23:37:17 | 显示全部楼层
贴excel里,文本导入向导,以-号分割,再替换列
回复

使用道具 举报

82

主题

2073

回帖

4526

积分

论坛元老

积分
4526
发表于 2019-3-4 23:28:54 | 显示全部楼层
notepad++或者其他支持正则的文本编辑器
查找模式:正则表达式

查找:
([0-9]{4,})----([\u4e00-\u9fa5]{1,})----([\u4e00-\u9fa5]{1})----([\u4e00-\u9fa5]{2,})----([0-9]{2,})----([\u4e00-\u9fa5]{2,})
替换为:
$1AAAA$2BBBB$3CCCC$4DDDD$5EEEE$6FFFF

结果:
25612AAAA寒日气BBBB男CCCC上海DDDD29EEEE本科FFFF
45466AAAA值得BBBB男CCCC山东DDDD23EEEE本科FFFF
56756AAAA输合BBBB男CCCC河南DDDD26EEEE本科FFFF
67456AAAA七维影BBBB男CCCC广东DDDD28EEEE本科FFFF
95676AAAA冷心为王BBBB男CCCC江苏DDDD22EEEE本科FFFF
回复

使用道具 举报

2

主题

70

回帖

160

积分

注册会员

积分
160
发表于 2019-3-4 22:57:17 | 显示全部楼层
python写的:
f = open('/Users/apple/Desktop/test.txt', 'r')    # 打开文件
datas = f.readlines()
for data in datas:
    lists = data.split("----")
    datafi = ""
    for i,li in enumerate(lists):
        print(i)
        if i == len(lists)-1: #看是不是最后一个
            datafi +='----'+lists[i]
        elif i == 0:
            datafi += li+'AAAA'
        elif i == 1:
            datafi += li+'BBBB'
        elif i == 2:
            datafi += li+'CCCC'
        elif i == 3:
            datafi += li+'DDDD'  
    f_new = open('/Users/apple/Desktop/testnew.txt','a')
    f_new.write(datafi)
f_new.close()
f.close()


结果:
25612AAAA寒日气BBBB男CCCC上海DDDD----本科
45466AAAA值得BBBB男CCCC山东DDDD----本科
56756AAAA输合BBBB男CCCC河南DDDD----本科
67456AAAA七维影BBBB男CCCC广东DDDD----本科
95676AAAA冷心为王BBBB男CCCC江苏DDDD----本科
回复

使用道具 举报

35

主题

883

回帖

1907

积分

金牌会员

积分
1907
发表于 2019-3-4 23:00:28 | 显示全部楼层
每行.split("----") 然后abcde迭代
回复

使用道具 举报

39

主题

1636

回帖

3439

积分

论坛元老

积分
3439
发表于 2019-3-4 23:08:08 | 显示全部楼层
bash 代码,

源文件名为 old,处理后的文件名为 new

[ol]
  • cat old | while read line
  • do
  •     echo $line | sed 's/----/AAAA/' | sed 's/----/BBBB/' | sed 's/----/CCCC/' | sed 's/----/DDDD/' | sed 's/----/EEEE/' >> new
  • done
  • [/ol]复制代码

    结果
    [ol]
  • 25612AAAA寒日气BBBB男CCCC上海DDDD29EEEE本科
  • 45466AAAA值得BBBB男CCCC山东DDDD23EEEE本科
  • 56756AAAA输合BBBB男CCCC河南DDDD26EEEE本科
  • 67456AAAA七维影BBBB男CCCC广东DDDD28EEEE本科
  • 95676AAAA冷心为王BBBB男CCCC江苏DDDD22EEEE本科[/ol]复制代码
  • 回复

    使用道具 举报

    48

    主题

    395

    回帖

    1002

    积分

    金牌会员

    积分
    1002
    发表于 2019-3-4 23:33:36 | 显示全部楼层
    大佬们是各显神通啊

    回复

    使用道具 举报

    1

    主题

    163

    回帖

    343

    积分

    中级会员

    积分
    343
    发表于 2019-3-4 23:34:48 | 显示全部楼层
    本帖最后由 574722031 于 2019-3-4 23:46 编辑

    大文本推荐 EmEditor , notepad++容易卡死
    ^(\d+)----(\w+)----(\w+)----(\w+)----(\d+)----(\w+)$
    替换
    \1AAAA\2BBBB\3CCCC\4DDDD\5EEEE\6
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-4-21 05:50 , Processed in 0.020039 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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