在AppleScript中,在标记后面取X符号并保存到变量中。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在AppleScript中,在标记后面取X符号并保存到变量中。相关的知识,希望对你有一定的参考价值。
我正在寻找一种方法,通过AppleScript将11个符号在之后的 ?v=
中的一部分,并将它们保存到一个变量中。这是一个链接的例子。
https://www.youtube.com/watch?v=PxDK95Q5qN0&ab_channel=TheLateShowwithStephenColbert
所以我需要一个小脚本来获取剪贴板中的链接 识别出11个符号后的符号 ?v=
,把这11个符号(PxDK95Q5qN0
),并将其保存到一个变量中(例如 extract)。
我确实找到了一个部分解决方案 此处 - 但这个只有在两个部分之间的时候才会有效,如 ?v=
和 &
. 该解决方案的问题是,许多链接都很短,而且没有最后的&符号(例如。https://www.youtube.com/watch?v=PxDK95Q5qN0
)
在这里,我很感谢大家的帮助和指点! :]
无论你将剪贴板设置为,如,,。
set the clipboard to "https://www.youtube.com/watch?v=PxDK95Q5qN0&ab_channel=TheLateShowwithStephenColbert"
或者,例如,,,。
set the clipboard to "https://www.youtube.com/watch?v=PxDK95Q5qNO"
下面是... 例子 AppleScript 编码 后面的11个字符返回 ?v=
:
set extract to do shell script ¬
"sed -Ee 's/.*[?]v[=]([a-zA-Z0-9]{11}).*/1/'<<<" & ¬
(the clipboard as text)'s quoted form
注意:
?v=
可以代替[?]v[=]
的部分sed
指挥 反正?
和=
被视为 正字 而不是 特殊字符.此外,如果目标字符的数量从11个改变,但
?v=
和&
在你的例子中,仍然在发挥作用,那么这个 检索词,并在下面进一步说明,处理它。.*[?]v[=]([a-zA-Z0-9]+[^&]).*
使用来自 https:/regex101.com 来解释 检索词 用在 sed
指挥:
兴趣的主要部分是 捕获组 ([a-zA-Z0-9]{11})
后返回的,因为这就是返回的内容,如果它直接存在于 ?v=
在 网址.
那个macsripter链接为你指明了正确的方向(虽然有很多信息需要消化)。只要你运行的是10.6或更高版本,你就可以使用这个程序。
on getTheV(link_text)
set {tid, my text item delimiters} to {my text item delimiters, {"=", "&"}}
set theV to second text item of link_text
set my text item delimiters to tid
return theV
end getTheV
它将链接分解成文本项--用"="和"& "分割--并返回第二项。
像这样使用它。
set theV to getTheV("http://...")
你提供的两个链接都返回正确的值。
以上是关于在AppleScript中,在标记后面取X符号并保存到变量中。的主要内容,如果未能解决你的问题,请参考以下文章
text [在标记2中打开当前的Scivener文件] #marked #scrivener #applescript
通过 AppleScript 添加 InDesign XMLElements 时如何提高性能?
javascript 获取已标记的Omnifocus任务Applescript