2016-12-21 47 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

相關問題