如何在 AppleScript 中使用 REGEX?

How to use REGEX with AppleScript?

我正在使用以下命令通过 AppleScript 从 Safari 获取当前 URL:

set token to URL of current tab of window 1

URL类似这样:

https://www.example.com/somepath?page=123&somekey=somevalue

我只需要参数的值page。在这种情况下,我需要 123.

因为不能只抓取参数的值,所以想用REGEX提取值

我编写了以下正则表达式来从 URL 字符串中提取值:

page=([0-9]+)

但我没有找到在 AppleScript 中使用 REGEX 的方法。我该怎么做?

终于找到方法了。这是有效的解决方案:

set safariURL to URL of current tab of window 1
    
set token to (do shell script ¬
        "[[ " & quoted form of safariURL & " =~ page=([0-9]+) ]]; printf ${BASH_REMATCH[1]}")

您可以像这样在 AppleScript 控制台中测试它:

set safariURL to "https://www.example.com/somepath?page=123&somekey=somevalue"

set token to (do shell script ¬
    "[[ " & quoted form of safariURL & " =~ page=([0-9]+) ]]; printf ${BASH_REMATCH[1]}")

do shell script "echo " & token