如何在 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
我正在使用以下命令通过 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