所以,我有這些數據來自導出到文本,我希望能夠提取並創造出比純文本更好報告的短信,讓我有充分的這些行的文件:爲什麼我最後一個被命名的小組抓住了一切?
1. 01 mag 2015 10:55:08 AM stringOne PersonName +999999999999 MultilineText
設我把它分解下來:
- 「1.」就像是一個行數
- 「01 MAG 2015上午10時55分08秒」是日期
- 「stringOne」是可以是「stringOne」或「stringTwo」的字符串
- 「PERSONNAME」是一個表示人的姓名串
- 「999999999999」的電話號碼
- 「MultilineText」是可以包含任何
我使用Regex.Matches
得到MatchCollection
迭代上一個多串。
,我可以得到一切,如果我不包括在最後一組,我真的需要這些數據,所以這裏是我使用的成功檢索數據,而最後一組正則表達式的工作:
@"(?<lineNumber>\d{1,3}\. )(?<date>\d{2} \w{3} \d{4} \d{2}\:\d{2}\:\d{2} (AM|PM))\s*(stringOne|stringTwo)\s*(?<from>\w+)\s*(?<celnumber>\+?\d+)"
我試着以下部分添加到正則表達式:
(?<text>.*)
但是,我不能正確獲取多行文本,我得到了一些數據,但是當它多被切出。
然後,我曾嘗試使用它代替:
(?<text>(.|\n)*)
我只得到一個行的結果。
那麼,如何才能將最後一塊「信息」作爲多行文本?
在阿里納斯換行,我從你的正則表達式看出,空間('\ s') '','stringOne | StringTwo',''和''是可選的('*'量詞= 0或更多)。可能是一個好主意,使其成爲必需? ('+'量詞= 1或更多) –
ohaal
@ohaal是的,大聲笑,這可能是一個好主意,因爲他們的確需要=) – Robson