2012-07-06 88 views
0

我将我的所有推文导出到一个文本文件,但我想对它进行一些操作以不同的方式进行格式化。在我看来,最简单的方法是使用正则表达式,但我没有太多经验。如何使用正则表达式处理文本文件?

当前格式:

User: Jack 
Text: Hello world! 
Created At: July 06 22:55:33 2012 

--- 

User: Jill 
... 

格式,我想它去:

Hello World! 

July 06, 2012 at 10:55PM via [Jack](http://twitter.com/Jack) 

--- 

... 

谁能帮我找出了正则表达式会是什么?最棘手的部分是将时间戳从24小时改为12小时。我也想要颠倒这个顺序(最近在底部而不是在顶部),但我不确定这是多么容易。

+0

如果你愿意的话,你可以用正则表达式来解析它,但它是一种非常简单的格式,我认为你不需要它们。你需要别的什么来做24h到12h的转换。你在用什么语言? – cha0site 2012-07-06 18:01:51

+0

如果编程语言支持作为'Replace'参数的函数,那么24h到12h也可以主要以正则表达式完成。 (例如Javascript,.NET) – Arithmomaniac 2012-07-06 18:03:30

+0

我在我的文本编辑器中使用find和replace来删除一堆元数据,并认为我可以使用正则表达式来完成最后一个操作。 – 2012-07-06 18:11:33

回答

0

重新排序,但在离开的时间为24小时:

搜索:User: (.+)\nText: (.+)\nCreated At: (\w+ \d+) (\d+:\d+:\d+) (\d+)\n

替换:\2\n\n\3, \5 at \4 via [\1](http://twitter.com/\1)\n

替换模式可能需要$1代替\1,等等,这取决于正则表达式的味道。

第1组的用户名

第2组是文本

集团3月份和月份的一天

组4天的时间

集团5年

使用简单的正则表达式将24h转换为12h是可能的,但最好在编程语言的帮助下完成。

+0

谢谢。这真的很好。 – 2012-07-07 16:44:57