使用Python匹配电话号码的Textexpander

2024-05-15 09:16:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

  1. 在一个应用程序中,单击一个格式为0798008080的电话号码,复制该号码,并在另一个应用程序(如0041 79 800 80 80)中插入带有文本扩展器快捷方式的剪贴板内容。

  2. 在一个应用程序中单击一个格式为079 800 80 80的电话号码,复制,将带有Textexpander快捷方式的剪贴板内容插入另一个应用程序,如0041 79 800 80 80

我发现了一个Textexpander代码段,它将剪贴板内容设置为大写:

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

但是我不知道如何根据我的目的修改这个片段(%clipboard是textpander中用来访问剪贴板内容的代码)

有人有什么建议吗?在


Tags: 文本应用程序内容usr代码段格式sys电话号码
2条回答

@黑客工厂:

是的,我仍然需要帮助来匹配和转换模式。在

我想我需要一个Python、Ruby或者AppleScript代码来转换电话号码,比如从剪贴板(在Mac上简单地通过⌘-C复制号码)到0041 79 800 80 80和{}到{}:

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

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

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

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

在示例中

#!/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和{}也与Python有关(我建议如此),但我离真正理解Python还很远。在

因此,我需要的是一个Python/Ruby代码,用于将格式类似0798008080和{}的电话号码转换为0041 79 800 80 80,并将代码放入Textexpander工作流中。在

有道理吗?我的话听得懂吗?在

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

匹配

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

转变

^{pr2}$

相关问题 更多 >