小编Mil*_*joo的帖子

在Ruby中,shell单行中的sub,gsub(和其他文本方法)如何在不引用对象的情况下工作?

我在网上某处看到了这段代码:

ruby -pe 'gsub /^\s*|\s*$/, ""'
Run Code Online (Sandbox Code Playgroud)

显然,这段代码从STDIN的每一行中删除了前导和尾随空格.

我理解正则表达式和替换,没问题,但我没有得到的是该方法如何gsub接收一个对象来采取行动.我明白这个-p标志将整个事情包裹在一个while gets; print; ... ; end块中,但是如何gsub接收字符串来处理呢?至少,不应该是一个$_.gsub(..)相反?如何将当前输入行"神奇地"传递给gsub

这些类似Perl的单行代码是否以稍微不同的方式解释?我正在寻找与传统的基于脚本的Ruby代码的差异的一般概念.我很害怕,还没有找到一套全面的资源.

ruby

2
推荐指数
1
解决办法
153
查看次数

Lucene 3.5.0 QueryParser在以编程方式生成的查询时没有找到任何结果

这最近令我感到困惑,我似乎无法在任何地方找到合适的解释.

如果我运行使用查询API构建的查询,它可以很好地工作.

TermQuery sourceQuery = new TermQuery(new Term("source", "CNN"));
Run Code Online (Sandbox Code Playgroud)

运行results = searcher.search(sourceQuery, 30)和检查results.totalHits显示值为159.

但是,在同一个程序中,我设置了一个QueryParser(我的默认字段被调用text):

Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);
QueryParser parser = new QueryParser(Version.LUCENE_35,
      "text", analyzer);
Run Code Online (Sandbox Code Playgroud)

并输入命令行查询

source:CNN
Run Code Online (Sandbox Code Playgroud)

没有结果.在Luke 运行此命令确实给了我一个结果.有谁知道发生了什么?

java lucene

1
推荐指数
1
解决办法
1166
查看次数

标签 统计

java ×1

lucene ×1

ruby ×1