Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 提取文本文件中的数字_Python_Bash_Powershell_Text_Extract - Fatal编程技术网

Python 提取文本文件中的数字

Python 提取文本文件中的数字,python,bash,powershell,text,extract,Python,Bash,Powershell,Text,Extract,我有一个来自excel的文本文件。我不知道如何在一个特定的字符后取五位数 我只想在文本文件中的#ACA后面取五位数字 我的文字如下: ERROR_MESSAGE (((#ACA16018)|(#ACA16019))&(#AQV71767='')&(#AQV71765='2'))?1:((#AQV71765='4')?1:((#AQV71767$'')?(((#AQV71765='1')|(#AQV71765='3'))?1:'Hasar veya Lehe Hukuk seçeb

我有一个来自excel的文本文件。我不知道如何在一个特定的字符后取五位数

我只想在文本文件中的
#ACA
后面取五位数字

我的文字如下:

ERROR_MESSAGE
(((#ACA16018)|(#ACA16019))&(#AQV71767='')&(#AQV71765='2'))?1:((#AQV71765='4')?1:((#AQV71767$'')?(((#AQV71765='1')|(#AQV71765='3'))?1:'Hasar veya Lehe Hukuk seçebilirsiniz'):'Rücu sıra numarasını yazıp Hasar veya Lehe Hukuk seçebilirsiniz'))
Rücu Oranı Girilmesi Zorunludur...'
#ACA17660
#ACA16560
#ACA15623
#ACA17804
BU ALANI BOŞ GEÇEMEZSİNİZ.EKSPER RAPORU GELMEDEN  DY YE GERİ GÖNDEREMEZSİNİZ. PERT İHBARI VARSA PERT ÇALINMA OPERASYONU AKTİVİTESİ OLUŞTURULMALIDIR.
(#TSC[T008UNSMAS;FIRM_CODE=2 AND UNIT_TYPE='SG' AND UNIT_NO=#AQV71830]>0)?1:'Girdiğiniz değer fihristte yoktur'
#ACA17602
#ACA17604
#ACA56169
BU ALANI BOŞ GEÇEMEZSİNİZ
#ACA17606
#ACA17608
(#AQV71835='')?'Boş geçilemez':1
Lütfen Gönderilecek Kişinin Mail Adresini Giriniz ! '
LÜTFEN RED NEDENİNİ GİRİNİZ.
EKSİK BİLGİ / BELGE ALANINA GİRMİŞ OLDUĞUNUZ DEĞER YANLIŞ VEYA GEÇERŞİZDİR!!! LÜTFEN KONTROL EDİP TEKRAR DENEYİNİZ.'
BU ALAN BOŞ GEÇİLEMEZ. ÖDEME YAPILMADAN EK ÖDEME SÜRECİNİ BAŞLATAMAZSINIZ.
ONAYLANDI VE REDDEDİLDİ SEÇENEKLERİNİ KULLANAMAZSINIZ
BU ALAN BOŞ GEÇİLEMEZ.EVRAKLARINIZI , VARSA EKSPER RAPORUNU VE MUALLAĞI KONTROL EDİNİZ. 
Muallak Tutarını kontrol ediniz.
'OTO BRANŞINDA REDDEDİLDİ NEDENİ SEÇMELİSİNİZ'
'OTODIŞI BRANŞINDA REDDEDİLDİ NEDENİ SEÇMELİSİNİZ'
(#AQV70003$'')?((#TSC[T001HASIHB;FIRM_CODE=#FP10100 AND COMPANY_CODE=2 AND CLAIM_NO=#AQV70003]$0)?1:'Bu dosya sistemde bulunmamaktadır'):'Bu alan boş geçilemez'
(#AQV70503='')?'Bu alan boş geçilemez.':((#ACA18635=1)?1:'Mağdura ait uygun kriterli ödeme kaydı mevcut değildir.')
(#AQV71809=0)?'Boş geçilemez':1
(#FD101AQV71904_AFDS<0)?'Tarih bugünün tarihinden büyük olamaz
错误消息
(意大利)ACA 16018(简称(((#)ACA 16018 18)号(((((#意大利)ACA 16018 18 18)号((((35; ACA 16018)号)卡卡卡亚18)号(((#意大利)ACA 16019)号)以及(#AQV71767 7 7 7 7 7 7.7((((#AQV71777777777 7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7=除除除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了AQV7171765.5.5.5.5.5.5.5.5.5.("ebilirsiniz")
Rücu OranıGirilmesi Zorunludur…'
#ACA17660
#ACA16560
#ACA15623
#ACA17804
布阿莱尼·博伊梅兹·埃克斯佩尔·拉波鲁·格尔梅登·德雷梅兹·博伊梅兹·埃克斯佩尔·德雷梅兹·佩特赫巴里·瓦尔萨·佩特切利马·佩特切利马·埃克斯佩尔·拉波鲁·格尔梅登和杰尔·格尔梅兹·恩德梅兹·佩特赫巴里·瓦萨·佩特切利马·佩特·奥卢马利迪尔。
(#TSC[T008UNSMAS;公司代码=2,单位类型=SG,单位编号=AQV71830]>0)?1:“吉尔迪安·德奥尔·菲里斯特·约克图”
#ACA17602
#ACA17604
#ACA56169
布阿拉尼·博格·切梅兹
#ACA17606
#ACA17608
(#AQV71835='')“博伊莱梅兹”:1
Lütfen Gönderilecek Kişinin Mail Adresini girizing!“
莱特芬红内登·纳登·格拉·纳兹(LÜTFEN RED NEDENİNİGİRİNİZ)。
埃克斯·布卢格/贝尔格·阿兰娜·戈尔姆·奥杜努兹·德乌努兹·延利·维耶·格切尔·兹德!!!LÜTFEN KONTROL EDİP TEKRAR DENEYİNİZ.'
布阿兰·博格·切莱麦斯。ÖDEME YAPILMADAN EKÖDEME S࢜RECİNİBAŞlatamaziniz。
奥纳兰迪·雷德·阿尔德·切内克勒·库兰·亚马西尼兹(ONAYLANDI VE RededİLDİSEİENEKLERİNİkullamazziniz)
阿兰·博格·切勒梅兹·埃夫拉克拉里尼齐(ALAN BOŞGEİLEMEZ.EVRAKLARINIZI),瓦萨·埃克斯珀·拉波鲁努(VARSA EKSPER RAPORUNU VE MUALLAĞI KONTROL EDİNİZ)。
穆阿拉克·图塔尔恩·康特罗·爱迪尼兹。
“OTO BRANŞINDA RededİLDİNEDENİSEİMELİSİNİZ”
“OTODIŞI BRANŞINDA rededİLDİNEDENİSEİMELİSİNİZ”
(#AQV70003$)(#TSC[T001HASIHB;公司代码=#FP10100和公司代码=2,索赔号=#AQV70003]''0)?1:“Bu dosya sistemde Bulumanaktadır”):“Bu alan boşgeçilemez”
(#AQV70503=”)“Bu alan boşgeçilemez.”:(#ACA18635=1)?1:“Mağdura ait uigun kriterliödem kaydımevcut değildir.”)
(#AQV71809=0)‘Boşgeçilemez’:1
(35; FD101AQV71904_AFDS这应该可以

import re

print(re.findall("#ACA(\d+)",str_var))
如果变量
str\u var

输出:

['16018', '16019', '17660', '16560', '15623', '17804', '17602', '17604', '56169', '17606', '17608', '18635']
re.findall(r'#ACA(\d{5}),str_var)
PowerShell解决方案:

$contet = Get-Content -Raw 'your_file'
$match = [regex]::Matches($contet, '#ACA(\d{5})')
$match | ForEach-Object {
    $_.Groups[1].Value
}
输出:

16018
16019
17660
16560
15623
17804
17602
17604
56169
17606
17608
18635

[x[:5]表示内容中的x.split(#ACA”)[1:][/code>

grep -oP '#ACA\K[0-9]{5}' file.txt
  • #ACA\K
    将匹配
    #ACA
    ,但不作为输出的一部分打印
  • [0-9]{5}
    以下五位数字
    #ACA
如果需要可变位数,请使用

grep -oP '#ACA\K[0-9]+' file.txt

如果您不知道或不喜欢正则表达式,可以这样做,尽管代码要长一点:

if __name__ == '__main__':
    pattern = '#ACA'
    filename = 'yourfile.txt'
    res = list()
    with open(filename, 'rb') as f:  # open 'yourfile.txt' in byte-reading mode
        for line in f:  # for each line in the file
            for s in line.split(pattern)[1:]:  # split the line on '#ACA'
                try:
                    nb = int(s[:5])  # take the first 5 characters after as an int
                    res.append(nb)  # add it to the list of numbers we found
                except (NameError, ValueError):  # if conversion fails, that wasn't an int
                    pass
    print res  # if you want them in the same order as in the file
    print sorted(res)  # if you want them in ascending order

在运行yourscript.ps1之后,我如何对输出进行uniq排序?只需使用
|sort
将结果传输到sort cmdlet即可。不客气,但无需在帖子中到处写“谢谢”,一般认为人们都很感激;)或者如果你真的“需要”感谢所有人,只需留下一条一般性评论:)您还可以在位数上添加限制“5”。