作者: faiwaic 時間: 2017-8-10 10:29 標題: regular expression 新手疑問
請問如果 input 係一封 letter, 有 Sender, receiver, cc, subject, letter body 咁計
****************************
Sender: abcd/+Receiver: abcde/-cc: efg
subject: testing
body:
Dear Name,
XXXXXXX, abcd
......
*****************************
如果以 regular expression 抽返 sender , receiver, cc, subject , body, etc
(但又唔一要要有, e.g. 唔係封封信都有 cc )
咁可唔可以用一個 pattern 抽晒 Sender, Receiver , cc, Subject, body 咁 玩?
作者: zenith 時間: 2017-8-10 11:38
sender , receiver, cc, subject , body 呢堆係固定嘢, 根本唔需要 reg exp
作者: cal22cal 時間: 2017-8-10 12:07
唔知想要啲乜嘢,
body 會係好多行?
grep -iE '(Sender:|Receiver:|cc:)' target_file.txt
作者: faiwaic 時間: 2017-8-10 12:46
回覆 2# zenith
但如果冇 CC, 咁 efg 什致冇 埋 CC:efg 呢?
作者: faiwaic 時間: 2017-8-10 12:48
唔知想要啲乜嘢,
body 會係好多行?
grep -iE '(Sender:|Receiver:|cc:)' target_file.txt ...
cal22cal 發表於 2017-8-10 12:07
係...
而且 我唔係用 linux shell script 拎..
想match 到 就 ouput 一個 object.Sender, object.Receiver, etc...
如果冇 CC 就 由佢 null value....
但做到既係 1 個 pattern for 全部野, 一個 唔 match 全部死...
作者: chi251155 時間: 2017-8-12 01:02
有optional capture架嘛,通常係'?'
作者: smoke_cheese 時間: 2017-8-12 01:34
逐行match係做唔到
因為本文中都可以出現 Subject: 等字詞
最少要分開 header 部分先
作者: cal22cal 時間: 2017-8-14 09:40
本文中都可以出現 Subject: 等字詞,亦都可以有好多可能

加少少嘢,matched pattern 一定要响頭道
e.g.
grep -E --color=always '^[[:space:]]*(Sender:|Receiver:|cc:)' target_file.txt
作者: faiwaic 時間: 2017-8-15 11:35
我依家做法係先 capture CC 再capture 其他野一次過, 唔得再一樣樣咁 capture..
input 係 string (可以包 \n, \r\n, \t, 垃圾 characters, etc.)
作者: 高原熊 時間: 2017-8-23 10:33
本帖最後由 高原熊 於 2017-8-23 10:39 編輯
按第一個post段字黎試.
(?:Sender:\s([^\/]*)\/)(?:\+Receiver:\s([^\/]*)\/)(?:\-cc:\s(.*))?\n(?:subject:\s(.*)\n)?(?:body:\n([\S\s]*))\n
作者: Coffeelake 時間: 2017-9-12 19:47
請問如果 input 係一封 letter, 有 Sender, receiver, cc, subject, letter body 咁計
****************** ...
faiwaic 發表於 2017-8-10 10:29
出去交學費學
作者: faiwaic 時間: 2017-9-13 09:33
本帖最後由 faiwaic 於 2017-9-13 09:43 編輯
出去學只學基本野,
時代變得咁快, 唔係一個問題可以用一個答案可以解決.
呢個問題, 用 linux shell script, perl, js, .net, java 唔同 language 都可以唔同答案. 出去學可能就其中一隻半隻.
手法亦可以一句過, 獨立一個個 又得. (呢個反而係唔係書本上學到既野)
就算唔出去學, google search 都可以有一大堆參考.
而呢個問題係自己既 self study, 如果 所有野都係 conditional / optional 出現果陣又點樣可以 handle 呢?
呢D 都係我自己覺得 interest 既地方.

