【问题标题】:arbtt nested if then else in categorize.cfgarbtt 嵌套 if then else 在 categorize.cfg
【发布时间】:2014-01-07 14:02:29
【问题描述】:

我是新手,所以请多多包涵,但我正在尝试制定一条规则,使用 categorize.cfg 中的 arbtt v0.7 在 Firefox 选项卡上分配我的时间:

-- Firefox
current window ($program == "Navigator") ==>
  if $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ then tag Email:$2-$1 else
  if $title =~ /^(.*) - Calendar - Mozilla Firefox$/          then tag Calendar:$1 else
  if $title =~ /^(.*) - Mozilla Firefox$/                     then tag Firefox:$1  else
                                                                   tag Firefox,

但我明白了:

解析器错误:“/home/rich/.arbtt/categorize.cfg”(第 29 行,第 3 列): 意外的“我”期待“其他”

我还尝试了另一种更成功的方法:

current window ( $program == "Navigator" && $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ )
  ==> tag Email:$2-$1,
current window ( $program == "Navigator" && $title =~ /^(.*) - Calendar - Mozilla Firefox$/ )
  ==> tag Calendar:$1,
current window ( $program == "Navigator" && $title =~ /^((?!.*\b(Calendar|Mail)\b)) - Mozilla Firefox$/ )
  ==> tag Firefox:$1,

但是最后一个子句没有返回任何结果;前两个子句可以。

干杯, 丰富

【问题讨论】:

  • 嗯,现在是两个问题,不是吗?我不确定底层库 (pcre-light) 是否支持所有这些正则表达式功能。
  • 啊,不应该是/^(?!.*\b(Calendar|Mail)\b)(.*) - Mozilla Firefox$/ - (?!...) 是一个零宽度模式...但是我很惭愧; 的变体不起作用。也许这需要移动到 arbtt 邮件列表或错误跟踪器。
  • @Joachim 感谢 Joachim,修复了第三个子句。如果你把它放在你的答案中,我会将它标记为已回答,但现在你只需必须修复错误;)
  • 我肯定会在下一个版本之前修复它们。

标签: arbtt


【解决方案1】:

它看起来像arbtt 中的一个错误;我同意您的代码看起来是正确的。

但无论如何,使用; 操作符可能更惯用,这意味着“尝试第一件事,如果它没有分配标签,请尝试第二件事”:

current window ($program == "Navigator") ==> 
  { $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ ==> tag Email:$2-$1;;
    $title =~ /^(.*) - Calendar - Mozilla Firefox$/          ==> tag Calendar:$1;
    $title =~ /^(.*) - Mozilla Firefox$/                     ==> tag Firefox:$1;
    tag Firefox },

;; 是因为解析器中的另一个错误——猜想那部分还没有被大量使用。)

在您的第二次尝试中,正则表达式存在问题:它应该是 /^(?!.*\b(Calendar|Mail)\b)(.*) - Mozilla Firefox$/ - (?!...) 是一个零宽度模式。

【讨论】:

  • 感谢您的回答。尽管解析器接受它,但我没有得到任何匹配的条目。我在上面用另一种几乎可行的方法进行编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多