Board logo

標題: [操作疑難] regular expression 新手疑問 [打印本頁]

作者: 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 編輯
出去交學費學
Coffeelake 發表於 2017-9-12 19:47



    出去學只學基本野,
時代變得咁快, 唔係一個問題可以用一個答案可以解決.

呢個問題, 用 linux shell script, perl, js, .net, java   唔同 language 都可以唔同答案. 出去學可能就其中一隻半隻.
手法亦可以一句過, 獨立一個個 又得.  (呢個反而係唔係書本上學到既野)

就算唔出去學, google search 都可以有一大堆參考.

而呢個問題係自己既 self study, 如果 所有野都係 conditional / optional 出現果陣又點樣可以 handle 呢?
呢D 都係我自己覺得 interest 既地方.





歡迎光臨 電腦領域 HKEPC Hardware (https://h0.hkepc.com/forum/) Powered by Discuz! 7.2