我是比較新的正則表達式(總是與它掙扎出於某種原因)...Python的正則表達式來分析財務數據
我有文字是這樣的形式:
David Meredith, Financial Director sold post-exercise 15,000 shares in the company on YYYY-mm-dd at a price of 1044.00p. The Director now holds 6,290 shares representing 0.01% of the...
Mark Brookes, Non Executive Director bought 811 shares in the company on YYYY-mm-dd at a price of 76.75p. The Director now holds 189,952 shares representing 0.38% of the shares in...
Albert Ellis, CEO bought 262 shares in the company on YYYY-mm-dd at a price of 52.00p. The Director now holds 465,085 shares. NOTE: Purchased through Co's SIP Story provided by...
解析文本揭示了以下結構:開頭的句子
- 兩個或更多的話,第一個逗號之前,是參與交易的人的名字
- 之前的一個或多個單詞('sold'|''買入'|'已行使'|'已售出post exercise')是該人的頭銜
- 存在以下任何一種情況:('sold'|'buy' |'已行使'|'賣出後行使')標題之後,標識交易類型
- 交易類型後面的第一個數字字符串('sold'|'買過'|'已行使'|'售出後行使')表示交易規模
- '價格'在數字字符串前面,該數字字符串指定交易被觸發的價格。
我的問題是:
如何使用這方面的知識(和正則表達式),編寫分析類似的文本返回感興趣的變量的函數(上市1 - 5以上)?
爲我想寫功能..
def grok_directors_dealings_text(text_input):
name, title, transaction_type, lot_size, price = (None, None, None, None, None)
....
name = ...
title = ...
transaction_type = ...
lot_size = ...
price = ...
pass
我將如何使用正則表達式來實現的函數返回感興趣的變量符合我有結構化文本傳遞時的僞代碼以上確定?
[編輯]
出於某種原因,我似乎與正則表達式鬥爭了一段時間,如果我從這裏開始,因此正確答案的學習,它會更好,如果關於爲什麼神奇表達(對不起,regexpr)實際上起作用的解釋。
我想真正瞭解這種東西,而不是複製粘貼的表情......
我敬畏正則表達式的力量 - 但請你解釋它是如何正確匹配的?我不能在我對文本結構的描述和你創建的表達之間進行映射 - 你能否將它分解成一個凡人? –
@HomunculusReticulli,很難在單個答案中解釋有關正則表達式的所有內容,如果您想快速分析正則表達式,希望您發現它們有幫助,如果您想挖掘更多內容,請嘗試閱讀'掌握正則表達式'傑弗裏弗裏德爾' –