Tag: 解析

Ruby / Rails:遍历文件夹并解析元数据到种子DB

我有一堆文档,我想在Rails应用程序中编制索引。 我想使用各种rake任务来梳理目录层次结构,寻找文件并从这些文件中捕获元数据以在Rails中编制索引。 我不确定如何在Ruby中执行此操作。 我找到了一个名为pdftk的实用程序,它可以从PDF文件中提取元数据(我索引的大部分内容都是PDF),但我不确定如何捕获该数据的各个部分? 例如,要获取下面的ModDate或每个BookmarkTitle和BookmarkPageNumber 。 具体来说,我想遍历文件层次结构,为我找到的每个.pdf执行pdftk $filename dump_data命令,然后将该输出的重要部分捕获到rails模型中。 pdftk的输出: $ pdftk BoringDocument883c2.pdf dump_data InfoKey: Creator InfoValue: Adobe Acrobat 9.3.4 InfoKey: Producer InfoValue: Adobe Acrobat 9.34 Paper Capture Plug-in InfoKey: ModDate InfoValue: D:20110312194536-04’00’ InfoKey: CreationDate InfoValue: D:20110214174733-05’00’ PdfID0: 2f28dcb8474c6849ae8628bc4157df43 PdfID1: 3e13c82c73a9f44bad90eeed137e7a1a NumberOfPages: 126 BookmarkTitle: Alternative Maintenance Techniques BookmarkLevel: 1 BookmarkPageNumber: 3 BookmarkTitle: CONTENTS BookmarkLevel: 1 […]

如何在Yaml中解析这个?

假设我有这个例子: Example: number: cuarenta cuarenta y uno cuarenta y dos cuarenta y tres cuarenta y cuatro cuarenta y cinco cuarenta y seis cuarenta y siete cuarenta y ocho cuarenta y nueve 我想解析这个问题,以便将每个数字组合在一起,就像“cuaranta y nueve”一样。 我无法想象如何做到这一点,因为在YAML中,你变成了与“名词”相关联的字符串。 我的yaml解析器看起来像这样: File.open(Rails.root + ‘lib/words/yamlicious.yml’, ‘r’) do |file| YAML::load(file).each do |topic, word_types| temp_topic = Topic.create! name: topic temp_words = word_types.map{|type, words| […]

解析markdown缩进代码块

我试图使用Parslet编写的语法解析Markdown。 但是,我无法通过缩进的代码块,因为我到目前为止尝试的所有东西都被卡在递归中。 它们看起来像这样: This is a indented code block. Second line. Code block continues after blank line. There can be any number of chunks, separated by not more than one blank line. 为了解决这个问题,我写了一个最小的例子,用空格替换行(包括\n )和空行( \n\n ),例如: a aaa aa 。 # recurring_group_parser.rb require ‘parslet’ require ‘rspec’ require ‘parslet/rig/rspec’ class RecurringGroupParser > space end rule :space […]

Ruby中的解析器:#slice! 在里面#each_with_index =缺少元素

让我们说,我想从数组中分离元素的某些组合。 例如 data = %w{ start before rgb 255 255 255 between hex FFFFFF after end } rgb, hex = [], [] data.each_with_index do |v,i| p [i,v] case v.downcase when ‘rgb’ then rgb = data.slice! i,4 when ‘hex’ then hex = data.slice! i,2 end end pp [rgb, hex, data] # >> [0, “start”] # >> […]

从Ruby解析特定的类似JSON的数据(NextSTEP PList)

我正在为第三方API编写客户端,他们以奇怪的格式提供数据。 起初,它可能看起来像JSON,但它不是,我有点困惑我应该如何处理它。 它是一种基于键值的格式(很像JSON)。 键的值由’=’分隔。 键和值包含在双引号内。 字典以'{‘开头,以’}’结尾。 数组以’(’和以’结尾’开头 行以’;’结尾 (数组内容除外)和行尾字符(\ ri think)。 有时,字符串中似乎有unicode(类似于生物危害标志的\ U2623)。 什么可能是这种格式? 我应该使用premade gem来解析它,还是应该构建我自己的解析器? { “anArray” = ( “100”, “200”, “300” ); “aDictionary” = { “aString” = “Something”; }; } 编辑这种格式似乎是Apple的属性列表,但它不是XML也不是Binary ……这有意义,因为API来自WebObjects Web服务。 我将尝试使用CFPropertyList gem来解析它,如果有更好的解决方案,请告诉我。 编辑2这是一个NextSTEP财产清单 。

多级解析文本

我最后一次遇到问题: 解析和构造文本文件现在我想象复杂的条件。 例如。 我有一个文本文件,其中包含: Head 1 Subhead 1 a 10 b 14 c 88 Subhead 2 a 15 b 16 c 17 d 88 Subhead 3 a 55 b 36 c 87 Head 4 Subhead 1 r 32 t 55 s 79 r 22 t 88 y 53 o 78 p 90 m 44 Head […]

解析和构造文本文件

我需要帮助,我使用Ruby。 我有一个文本文件,其中包含: Head 1 a 10 b 14 c 15 d 16 e 17 f 88 Head 4 r 32 t 55 s 79 r 22 t 88 y 53 o 78 p 90 m 44 Head 53 y 22 b 33 Head 33 z 11 d 66 v 88 b 69 Head 32 n […]

Ruby按日期计算项目

我有一系列日期,例如 Fri Jan 28 10:13:19 UTC 2011 Thu Jan 27 16:57:59 UTC 2011 Thu Jan 27 16:41:21 UTC 2011 Wed Jan 26 09:20:48 UTC 2011 Mon Jan 24 16:19:48 UTC 2011 Fri Jan 21 11:45:34 UTC 2011 Fri Jan 21 11:42:19 UTC 2011 如何对它们进行分组,使得输出与每天的项目数一样为哈希值: Friday 28 => 1 Thursday 27 => 2 Wednesday 26 => […]

解析:我可以在Nokogiri中获取嵌入式CSS背景的URL吗?

我正在解析的HTML包含在表格中使用内联CSS的图像,我可以使用Nokogiri来确定URL组件,这里是我要解析的代码片段: tldr:我想在这个html片段中使用nokogiri获取.png Kristins Gifts Stationery to Explore

使用Ruby来解析Tcl DSL

我希望能够解析一些Tcl代码,其中参数不被字符串包围。 考虑一下这个tcl代码: proc foo {name} { puts “Foo –> $name” } foo bar 对于那些不熟悉Tcl的人来说, foo是方法名称, bar是参数(引号在Tcl中是可选的)。 以前的代码将输出: Foo –> bar 是否有可能使用ruby解析完全相同的输入( bar仍未加引号)? 等效的ruby代码是: def foo(name) puts “Foo –> #{name}” end tcl = <<-TCL.gsub(/^\s+/, "").chop foo bar TCL instance_eval(tcl) 当然,当它到达bar时会失败,因为它预计会被引用。 我尝试过修改method_missing def method_missing(meth, *args) puts meth.to_s + ” –> args.to_s end 但它以相反的顺序解析: to_hash –> [] bar […]