AppleScript:字符串中子字符串的索引

Ale*_*ers 10 string methods applescript substring function

我想创建一个函数,该函数从所述字符串的开头返回特定字符串的子字符串,但不包括另一个特定字符串的开头.想法?


所以类似于:

substrUpTo(theStr, subStr)
Run Code Online (Sandbox Code Playgroud)

因此,如果我输入substrUpTo("Today is my birthday", "my"),它将返回第一个参数的子字符串,但不包括第二个参数开始的位置.(即它会返回"Today is ")

has*_*has 10

set s to "Today is my birthday"
set AppleScript's text item delimiters to "my"
text item 1 of s
--> "Today is "
Run Code Online (Sandbox Code Playgroud)

  • 最佳做法是在使用文本项分隔符或列表到文本强制(隐式和显式)之前立即将TID设置为适当的值.这是确保您的代码不容易出错的唯一方法(即防御性编程).礼貌的做法是将现有的TID存储在一个临时变量中,然后在完成后恢复它们(即在找到它的状态下的全局"文本项分隔符"属性).在处理程序中执行此操作是明智的,以防调用处理程序的代码行在之后立即执行涉及TID的操作. (2认同)

duo*_*zmo 5

内置offset命令应执行以下操作:

set s to "Today is my birthday"
log text 1 thru ((offset of "my" in s) - 1) of s
--> "Today is "
Run Code Online (Sandbox Code Playgroud)