-1

我想使用 Textexpander 和 Python 通过剪贴板匹配电话号码:

  1. 单击一个应用程序中格式的电话号码0798008080复制该号码并在另一个应用程序中插入剪贴板内容,其中包含 Textexpander-Shortcut,例如0041 79 800 80 80.

  2. 单击一个应用程序中格式化的电话号码079 800 80 80复制,在另一个应用程序中插入剪贴板内容,其中包含 Textexpander-Shortcut,例如0041 79 800 80 80.

我找到了一个 Textexpander 片段,它将剪贴板内容设置为大写:

#!/usr/bin/python
import sys
selection = """%clipboard"""
sys.stdout.write(selection.upper(), 

但我不知道如何根据我的目的调整此代码段(%clipboard是 Textexpander 中用于访问剪贴板内容的代码)

有人有建议吗?

4

2 回答 2

0

@hackworks:

是的,我仍然需要帮助来匹配模式并对其进行转换。

我想我需要一个 Python-、Ruby- 或者 AppleScript-Code 来将电话号码0798008080从剪贴板(在 Mac 上通过 ⌘-C 简单地复制号码)转换为0041 79 800 80 80079 800 80 80转换为0041 79 800 80 80

  1. ⌘-C(复制)一个电话号码(0798008080)到剪贴板
  2. 转到另一个应用程序,我们说 Evernote/Word 等。
  3. 提示从 Textexpander 定义的缩写,例如;phone将转换后的电话号码粘贴0041 79 800 80 80到 Evernote/Word 等。

转换电话号码的 Python、Ruby 或 AppleScript 代码位于;phoneTextexpander 的代码段中:

  1. 如果我输入快捷方式;phone(或其他方式:快捷方式可以由用户自己定义),Textexpander 应该从剪贴板获取内容(为此,代码%clipboard可以在 Textexpander 中使用),
  2. 然后发起一个
  3. 转换剪贴板内容的 Python、Ruby 或任何代码(此处为:电话号码),
  4. 将转换后的剪贴板内容传输到 Textexpander,
  5. 这将 (e) 将快捷方式;phone(Textexpander) 替换为转换后的电话号码,并将转换后的电话号码插入 Evernote/Word/Excel 中

1、2、4 和 5 将由 Textexpander 完成。剪贴板内容“转换”代码也将直接放在 Textexpander 片段中,换句话说,Textexpander 将启动 Python-/Ruby-code。

在示例中

#!/usr/bin/python
import sys
selection = """%clipboard"""
sys.stdout.write(selection.upper(),

Textexpander 将执行类似的过程:此代码是在 Textexpander 片段中编写的。Word 中提示的(大写字母)快捷方式;uc将启动 Textexpander 代码段。Textexpander 将获取剪贴板内容 (%clipboard),推送 Python 代码 ( sys.stdout.write(selection.upper(),) 将剪贴板内容大写,并将转换后的剪贴板内容插入 Word。#!/usr/bin/pythonimport sys并且selection也与Python有关(我建议这样做),但我离真正理解Python还很远。

所以,我需要的是一个 Python/Ruby 代码,用于转换格式为0798008080和的电话号码,并将代码放入 Textexpander-workflow 中。079 800 80 800041 79 800 80 80

是否有意义?我的言论够理解吗?

于 2015-05-26T08:16:42.327 回答
0

经过一段时间的测试,我找到了使用正则表达式的解决方案。以下正则表达式匹配并将第一个示例转换079666555220041 79 666 55 22. 我必须更改此代码,以便示例二(079 600 80 80to 0041 79 600 80 80)也将与此代码匹配,但这需要一些时间(欢迎任何建议:-)):

匹配

^(0|[1-9])([0-9]{2})([0-9]{3})([0-9]{2})([0-9]{2})

转型

0041 $2 $3 $4 $5
于 2015-06-12T08:06:13.957 回答