在AppleScript中,在标记后面取X符号并保存到变量中。

【在AppleScript中,在标记后面取X符号并保存到变量中。】逆水行舟用力撑,一篙松劲退千寻。这篇文章主要讲述在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= 在 网址.
在AppleScript中,在标记后面取X符号并保存到变量中。

文章图片



在AppleScript中,在标记后面取X符号并保存到变量中。

文章图片

另一答案那个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://...")

你提供的两个链接都返回正确的值。

    推荐阅读