Textexpander与Python匹配电话号码

时间:2015-05-21 14:49:44

标签: python clipboard phone-number textexpander

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

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

  2. 在一个应用程序中单击格式为079 800 80 80的电话号码 copy ,在另一个应用程序0041 79 800 80 80中插入带有Textexpander-Shortcut的剪贴板内容。< / p>

  3. 我找到了一个Textexpander片段,它以大写字母设置剪贴板内容:

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

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

    有人有建议吗?

2 个答案:

答案 0 :(得分:0)

@hackworks:

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

我想我需要一个Python,Ruby或AppleScript代码来转换剪贴板中的0798008080等电话号码(在Mac上用⌘-C简单复制数字)到{{1} }和0041 79 800 80 80079 800 80 80

  1. ⌘-C(复制)电话号码(0041 79 800 80 80)到剪贴板
  2. 转到另一个应用程序,我们说Evernote / Word等。
  3. 从像0798008080这样的Textexpander中提取已定义的缩写,将已转换的电话号码;phone粘贴到Evernote / Word等中。
  4. 转换电话号码的Python,Ruby或AppleScript代码位于Textexpander的代码段0041 79 800 80 80内:

    1. 如果我输入快捷方式;phone(或者任何方式:快捷方式可以由用户自己定义),Textexpander应该从剪贴板中获取内容(为此,可以使用代码;phone在Textexpander内),
    2. 然后发起
    3. Python-,Ruby-或任何代码转换剪贴板内容(此处:电话号码),
    4. 将转换后的剪贴板内容传输到Textexpander,
    5. 将(e)用转换后的电话号码替换快捷方式%clipboard(Textexpander),并将已转换的电话号码插入Evernote / Word / Excel中
    6. 1,2,4和5将由Textexpander完成。剪贴板内容“转换”代码也将直接放在Textexpander代码段中,换句话说,Textexpander将启动Python- / Ruby代码。

      在示例中

      ;phone

      Textexpander将执行类似的过程:此代码在Textexpander代码段中编写。在Word中添加的#!/usr/bin/python import sys selection = """%clipboard""" sys.stdout.write(selection.upper(), (大写)快捷方式将启动Textexpander代码段。 Textexpander将获取剪贴板内容(%clipboard),将Python代码(;uc)推送到大写剪贴板内容,并将转换后的剪贴板内容插入到Word中。 sys.stdout.write(selection.upper(),#!/usr/bin/pythonimport sys也与Python有关(我建议如此),但我远离真正理解Python。

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

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

答案 1 :(得分:0)

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

匹配

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

转化

0041 $2 $3 $4 $5