我正在尝试使用Sed在Applescript中进行字符串替换。
我正在使用以下命令:
set selected_text to do shell script "echo " & "\"" & selected_text & "\"" & " | sed /'s/<\\(.*\\)>/\\1/'"
并且遇到以下错误:
The action “Run AppleScript” encountered an error: “sed: 1: "/s/<\(.*\)>/\1/": invalid command code <”
预期输入:
FirstName LastName <FirstName.LastName@email.com>
预期输出:
FirstName.LastName@email.com
有人有什么建议吗?
答案 0 :(得分:0)
更好(更简便)的方法是将quoted form of
与do shell script
一起使用。 AppleScript为您转义文本。
正则表达式前面的斜杠是错误的,没有它,错误消失了,但是您的正则表达式中仍然存在错误。使用sed,您要替换输入中的内容,因此必须使用与整个输入匹配的输入正则表达式。然后,括号定义了您要保留的部分。第一部分是查找直到<
为止的所有项目,第二部分是要保留在括号内的电子邮件地址,最后是结尾的>
。
set selected_text to do shell script "echo " & quoted form of selected_text & " | sed 's/[^<]*<\\(.*\\)>/\\1/'"
最好,迈克尔/汉堡