所以,我有这些数据来自导出到文本,我希望能够提取并创造出比纯文本更好报告的短信,让我有充分的这些行的文件:为什么我最后一个被命名的小组抓住了一切?
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