![]() |
1
4
关键是一次解析一个块,同时匹配所有相关的内容。见
请记住,您还希望将信息放在一个允许您查询和操作信息的数据结构中,这里是最后一次修订。下面的代码使用sqlite创建内存数据库的能力。实际上,您可能希望将功能划分为两个脚本:一个用于解析和存储数据,另一个用于执行所需的任何操作。实际上,可能可以在SQL中执行所有必要的操作。
输出: C:\Temp> y.pl test.txt $VAR1 = [ { 'status' => 'Current', 'revdate' => '3/22/08 11:16:16 AM CST', 'author' => 'John Smith', 'description' => 'Some files', 'revision' => '1', 'filename' => 'main.h', 'summary' => 'Main header', 'view' => 'The View Name', 'branch_revision' => '1.0', 'lockedby' => '' }, { 'status' => 'Current', 'revdate' => '3/22/08 1:55:55 PM CST', 'author' => 'Jane Doe', 'description' => 'Some files', 'revision' => '2', 'filename' => 'main.c', 'summary' => 'Made an update.', 'view' => 'The View Name', 'branch_revision' => '1.1', 'lockedby' => '' }, { 'status' => 'Current', 'revdate' => '3/22/08 11:16:16 AM CST', 'author' => 'John Smith', 'description' => 'Some files', 'revision' => '1', 'filename' => 'main.c', 'summary' => 'Initial revision', 'view' => 'The View Name', 'branch_revision' => '1.0', 'lockedby' => '' } ]; |
![]() |
2
1
这是一个开始的方法。我比较喜欢把你的线分成几行(
|
![]() |
3
1
你已经有了一些很好的答案。以下是一种不同的分工方式:
|
![]() |
4
0
您需要一个基于状态的解析器。与
|