第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用正則表達(dá)式解析財(cái)務(wù)報(bào)表

使用正則表達(dá)式解析財(cái)務(wù)報(bào)表

慕慕森 2021-09-11 13:38:30
我正在處理正則表達(dá)式查詢以將特定模式的文本返回到組中。下面是我用正則表達(dá)式:r"([\w+ \-? \w+]* [\w+ ]+ [\(?\w+ \)?]*) (\(?[\d,-]+\)?) (\(?[\d,-]+\)?)"。以下是我正在解析的示例行以及我希望輸出的內(nèi)容:1) String: LOSS BEFORE INCOME TAXES (900,000) (900,000)Desired output: [('LOSS BEFORE INCOME TAXES', '(900,000)', '(900,000)')]Final result: correct 2) String: INCOME TAXES (RECOVERED) (90,000) (90,000)Desired output: [('INCOME TAXES (RECOVERED)', '(90,000)', '(90,000)')]Final result: correct3) String: RETAINED EARNINGS - BEGINNING OF YEAR 9,999,999 9,999,999Desired output: [('RETAINED EARNINGS - BEGINNING OF YEAR', '9,999,999', '9,999,999')]Final result: correct4) String: EXPENSESDesired output: ['EXPENSES']Final result: correct5) String: Subcontracts 8,058 2,655Desired output: [('Subcontracts', '8,000,000')]Final result: ['Subcontracts 8', '', '058 2', '', '655', '']6) String: Business taxes 116 -Desired output: [('Business taxes', '116', '-')]Final result: ['Business taxes 116 ', '', '']7) String: 600,000 600,000Desired output: [(600,000), (600,000)]Final result: ['642', '', '437 629', '', '070', '']8) String: Salaries, wages and benefits 400,000 400,000Desired output: [('Salaries, wages and benefits', '400,000', '400,000')]Final result: [(' wages and benefits', '463,437', '466,742')]我不確定我做錯(cuò)了什么或我錯(cuò)過(guò)了什么,但是 5、6、7 和 8 有問(wèn)題。如何調(diào)整上述查詢以使其涵蓋所有提到的情況?提前致謝!
查看完整描述

3 回答

?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

你可以試試這個(gè)隊(duì)友

^([a-z, \(\)-]*?)?\(?([\d,]+)?\)?\s*?\(?([\d,-]+)?\)?$

解釋

  • ^ - 錨定到字符串的開(kāi)頭。

  • ([a-z, \(\)-]+?)?- 匹配任何字符 a 到 z,或,or(或 ')` 或 '-' 零次或多次(懶惰模式)。

  • \(?- 匹配(?使其成為可選)。

  • ([\d,]+)?- 匹配任何數(shù)字或,一次或多次。(?使其成為可選)。

  • \)- 匹配)

  • \s*? - 匹配空間零次或多次。

  • (?([\d,-]+)?\)?- 匹配任何數(shù)字或-

  • $ - 字符串結(jié)束。


查看完整回答
反對(duì) 回復(fù) 2021-09-11
?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊

我認(rèn)為這個(gè)正則表達(dá)式會(huì)做你想做的:


^([A-Z][A-Za-z0-9 (),%;-]+?[^(\d\s])? ?(?:(\(?[\d,]+\)?|-)\s+(\(?[\d,]+\)?|-))?$

它查找一組字母字符,以字母開(kāi)頭,可能包括一些[(),%;-],但不以 a (、數(shù)字或空格結(jié)尾,后跟兩組可能()包圍的數(shù)字和,或-。所有組都是可選的,以允許匹配沒(méi)有描述或沒(méi)有數(shù)字的行。


在 Python 中:


import re

data = """LOSS BEFORE INCOME TAXES (900,000) (900,000)

INCOME TAXES (RECOVERED) (90,000) (90,000)

RETAINED EARNINGS - BEGINNING OF YEAR 9,999,999 9,999,999

EXPENSES

Subcontracts 8,058 2,655

Business taxes 116 -

600,000 600,000

GROSS PROFIT (50%; 2016 - 50%) 500,000 500,000

Bad debts - 50

Salaries, wages and benefits 400,000 400,000"""

regex = re.compile('^([A-Z][A-Za-z0-9 (),%;-]+?[^(\d\s])? ?(?:(\(?[\d,]+\)?|-)\s+(\(?[\d,]+\)?|-))?$', re.MULTILINE)

print regex.findall(data)

輸出:


[('LOSS BEFORE INCOME TAXES', '(900,000)', '(900,000)'),

 ('INCOME TAXES (RECOVERED)', '(90,000)', '(90,000)'),

 ('RETAINED EARNINGS - BEGINNING OF YEAR', '9,999,999', '9,999,999'),

 ('EXPENSES', '', ''),

 ('Subcontracts', '8,058', '2,655'),

 ('Business taxes', '116', '-'),

 ('', '600,000', '600,000'),

 ('GROSS PROFIT (50%; 2016 - 50%)', '500,000', '500,000'),

 ('Bad debts', '-', '50'),

 ('Salaries, wages and benefits', '400,000', '400,000')

]


查看完整回答
反對(duì) 回復(fù) 2021-09-11
?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

試試下面的正則表達(dá)式

r"([\w ,()-]*)[\(?[\d, -]*\)?]*[\(?[\d, -]*\)?]*"


查看完整回答
反對(duì) 回復(fù) 2021-09-11
  • 3 回答
  • 0 關(guān)注
  • 251 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)