使用AHK及正则实现大小写互转,下划线转驼峰

使用AHK及正则实现大小写互转,下划线转驼峰

v1版本代码

;当此脚本已经运行时自动替换旧实例再次运行。
#SingleInstance, Force
SendMode Input
SetWorkingDir, %A_ScriptDir%

;sql相关
::sel::select from
::cnt::count()
::wh1::where 1 = 1
::where1::where 1 = 1
::gb::group by
::od::order by

; 定义一个函数来获取所选文本
GetSelectedText()
{
    ; 定义变量来保存返回的文本
    Static SelectedText := ""
	; 复制选中的文本到剪贴板
    Send, ^c
    Sleep, 100
    ; 读取剪贴板的内容
	SelectedText = %Clipboard%
    return SelectedText
}

; 大小写转换
ChangeSelectTextUL()
{
    ; 获取选中的内容
	SelectedText := GetSelectedText()
	if(RegExMatch(SelectedText, "([A-Z])")){
		; MsgBox, 64, 提示, 大写,转为小写!
		SelectedText := RegExReplace(SelectedText,"([A-Z]*)","$L1")
	}else if(RegExMatch(SelectedText, "([a-z])")){
		; MsgBox, 64, 提示, 大写,转为小写!
		SelectedText := RegExReplace(SelectedText,"([a-z]*)","$U1")
	}else{
		; MsgBox, 64, 提示, 暂未匹配!
	}
    return SelectedText
}

; 下划线驼峰转换
ChangeSelectTextHump()
{
	; 获取选中的内容
	SelectedText := GetSelectedText()
	if(RegExMatch(SelectedText, "([a-z])_([a-z])")){
		; MsgBox, 64, 提示, 下划线转驼峰!
		SelectedText := RegExReplace(SelectedText,"([a-z])_([a-z])","$1$U2")
	}else if(RegExMatch(SelectedText, "([a-z])([A-Z])")){
		; MsgBox, 64, 提示, 驼峰,转为下划线!
		SelectedText := RegExReplace(SelectedText,"([a-z])([A-Z])","$1_$L2")
	}else{
		; MsgBox, 64, 提示, 暂未匹配!
	}
    return SelectedText
}

; 建内容放入剪贴板,并粘贴
CopyText(copyText)
{
	; 将新内容放入剪贴板
	Clipboard := copyText  
	; 发送Ctrl+V粘贴剪贴板内容
    Send, ^v
}

; 使用示例,将下划线、驼峰互转
F4::
    SelectedText := ChangeSelectTextHump()
	CopyText(SelectedText)
    ; MsgBox, 64, 提示, 所选文本是:`n%SelectedText%
Return

; Ctrl+Shift+x,将大小写互转
^+x::
    SelectedText := ChangeSelectTextUL()
	CopyText(SelectedText)
    ; MsgBox, 64, 提示, 所选文本是:`n%SelectedText%
Return

符号解释

^ 符号代表Ctrl键。
! 符号代表Alt键。
# 代表键盘上的Windows键。
+ 符号代表Shift
; 符号代表注释。示例:
^+x  = Ctrl+Shift+x
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值