AppleScript:删除文本字符串中的最后一个字符

时间:2015-08-31 04:39:16

标签: applescript

我需要删除文本字符串AppleScript中的最后一个字符。它证明了比我想象的更难的问题。  有谁可以解释如何做到这一点?

4 个答案:

答案 0 :(得分:4)

试试这个

set t to "this is a string"
text 1 thru -2 of t

输出:

"这是一个strin"

答案 1 :(得分:4)

悲悯。它应该是一项微不足道的任务(在大多数语言中它只是调用内置的"修剪"功能),但AppleScript绝对有可怜的库支持,社区没有做任何事情来堵塞这些差距本身,所以你必须推出自己的ad-hoc处理程序,甚至像这样的基本日常用品。例如:

on trimLastChar(theText)
    if length of theText = 0 then
        error "Can't trim empty text." number -1728
    else if length of theText = 1 then
        return ""
    else
        return text 1 thru -2 of theText
    end if
end trimLastChar

您可能会考虑投资AppleScript book(注意:我共同编写了Apress版本),它往往比AppleScript自己的文档更好地涵盖了常见文本和列表处理任务。

另一种选择是通过AppleScript-ObjC桥接来调用Cocoa,让您可以免费访问大量的即用型功能。这需要更多的工作,但对于更高级的文本处理任务,它通常是最简单,最安全,最有效的解决方案。如果你这样做,我建议你获得一份Shane Stanley Everyday AppleScript-ObjC的副本。

答案 2 :(得分:1)

tell application "Safari"
    open location "https://www.youtube.com/watch?v=IxnD5AViu6k#t=152.07430805"
    delay 1
end tell
delay 1

tell application "Safari"
    set theURL to URL of front document as text
end tell

if theURL contains "#" then
    repeat until theURL does not contain "#"
        set theURL to text 1 thru -2 of theURL
    end repeat
end if

答案 3 :(得分:0)

我发现这很有趣http://applehelpwriter.com/2016/09/06/applescript-remove-characters-from-a-string/

基本上,您可以导入Foundation来帮助您

use scripting additions
use framework "Foundation"
property NSString : a reference to current application's NSString

以下是删除最后一个路径组件的方法

on myRemoveLastPath(myPath)
  set myString to NSString's stringWithString:myPath
  set removedLastPathString to myString's stringByDeletingLastPathComponent
  removedLastPathString as text
end myRemoveLastPath