2016-12-21 60 views
0

我有一个macOS Automator工作流程运行AppleScript操作。从AppleScript中第一行文本输入中提取文本

动作接收文本(JavaScript代码多行),并且文本的第一行通常将是这样的:

/* filename.js */

文件名将始终是不同的,但在某些情况下该行将不存在。

我需要AppleScript操作来返回任何文本代替文件名

在该行不存在(无filename.js可以发现)的情况下,需要返回未知

更新:有人投票结束这个问题,因为它太宽泛,或者有太多可能的答案。

更具体地讲:这是我的AppleScript的样子:

on run {input, parameters} 

    return filename 
end run 

我的脚本将返回一个变量叫“文件名”,但我需要知道该怎么把线它上面提取来自第一行文本的文件名。

我试着在前几个结果here发现一些代码,但我无法弄清楚如何具体做我想做的事情。

我试图做的是:

  1. 获取文本的文本输入
  2. 第一线搜索该字符串使用正则表达式来获得第一空间与”之间的字符串。 JS”
  3. 如果正则表达式生产什么,还不得而知

回答

1

假设input为文字试试这个,它由JavaScript注释标记识别有效线路210 */

set firstLine to item 1 of paragraphs of input 
if firstLine starts with "/*" and firstLine ends with "*/" then 
    return text 4 thru -4 of firstLine 
else 
    return "unknown" 
end if 
+0

这个作品,谢谢!当我第一次运行它时,出现错误'无法获得{}。的项目1',然后我使用'display alert class of input'来确定输入文本实际上是'list'类型。然后我使用[来自这里](http://stackoverflow.com/questions/37289223/convert-applescript-list-in-to-string)的代码将列表转换为类型'ctxt',然后就能够使用这个上面的代码用于处理文本。 – mike