【问题标题】:How to delete text before a dot (.)如何删除点 (.) 之前的文本
【发布时间】:2018-06-12 19:47:40
【问题描述】:

我不知道如何编写脚本使其工作。但是,我知道 autohotkey 是一个强大的程序,可以帮助我节省时间。

请帮我写一个可以删除中间名的脚本,这些中间名后面通常缩写为一个点,例如:

->斯蒂芬·M·默克尔

->威廉·J·莫兰

按下热键后我想要的结果:

=> 斯蒂芬·默克尔

=> 威廉·莫兰

任何帮助将不胜感激。

谢谢!!

【问题讨论】:

  • 向我们展示您的尝试。
  • 这是我在网上看到的,这个脚本会从字符串/剪贴板中删除所有的单个字符。但我真的不知道如何使它工作: s := RegExReplace(clipboard, "\b\S\b\s+", "")
  • RegExReplace(Clipboard," \w\. "," ")

标签: autohotkey


【解决方案1】:

试试这个:

SendMode, Input

; -- Ctrl + . -> Delete middle name from selection

^.::
While GetKeyState("Ctrl","P")
    Sleep, 25
Clipboard := ""
Send, ^c
ClipWait, 0
If ErrorLevel
    Return
Sleep, 50
Clipboard := RegExReplace(Clipboard, "([A-Z][a-z]+) [A-Z]\. ([A-Z][a-z]+)", "$1 $2")
Send, ^v
Return

【讨论】:

  • 非常感谢,冒失鬼!!我可以再问一个问题吗?如果中间名超过一个字母(可能是 2 或 3),我们如何添加到这个脚本中?
  • 改用这一行:Clipboard := RegExReplace(Clipboard, "([A-Z][a-z]+) [A-Z][a-z]{0,2}\. ([A-Z][a-z]+)", "$1 $2")
  • 非常感谢!!你拯救了我的一天:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-02
相关资源
最近更新 更多