regex - ahk - 在字符(空格)之后获取文本
问题描述
我是 Autohotkeys 的新手。我正在尝试删除每行第一个空格内的所有文本,获取其他所有内容。
例子:
txt1=something
txt2=other thing
var.="-1" " " txt1 " " txt2 "`n"
var.="2" " " txt1 " " txt2 "`n"
var.="4" " " txt1 " " txt2 "`n"
;; more add ...
FinalVar:=var
;...
msgbox % FinalVar
RETURN
电流输出:
-1 something other thing
2 something other thing
4 something other thing
我多么希望(FinalVar whitout 的所有行都需要循环):
something other thing
something other thing
something other thing
在 bash 我可以使用像 SED 这样的东西
有没有一种快速的方法可以在 ahk 中做同样的事情?
感谢您的关注。对不起我的英语!
解决方案
您可以使用InStr命令的组合
InStr()
从左边或右边搜索给定的字符串。
FoundPos := InStr(Haystack, Needle , CaseSensitive := false, StartingPos := 1, Occurrence := 1)
和SubStr命令。
SubStr()
从字符串中的指定位置检索一个或多个字符。
NewStr := SubStr(String, StartingPos , Length)
使用 InStr 可以找到 var 中第一个空格的位置。
使用 SubStr,您可以将该位置之后的所有内容提取到字符串的末尾,如下所示:
StartingPos := InStr(var, " ")
var := SubStr(var, StartingPos + 1)
注意 + 1,它的存在是因为您需要在空格之后开始提取文本 1 位置,否则空格将是提取文本中的第一个字符。
要替换所有行中的前导文本,您可以使用RegExReplace
RegExReplace()
替换字符串中出现的模式(正则表达式)。
NewStr := RegExReplace(Haystack, NeedleRegEx , Replacement := "", OutputVarCount := "", Limit := -1, StartingPosition := 1)
FinalVar := RegExReplace(var, "m`a)^(.*? )?(.*)$", "$2")
m`a)
是 RegEx 选项,^(.*? )?(.*)$
是实际的搜索模式。
m 多行。将 Haystack 视为单个行的集合(如果它包含换行符),而不是单个连续行。
`a : `a 识别任何类型的换行符,即 `r、`n、`r`n、`v/VT/vertical tab/chr(0xB)、`f/FF/formfeed/chr(0xC) 和 NEL /下一行/chr(0x85)。
推荐阅读
- javascript - 如何根据开关滑块位置更改不透明度?
- laravel - 名称、地址和图像等数据字段正在插入到数据库中,但问题是图像没有存储到文件夹中
- neural-network - 精确检测物体边界
- javascript - 无法在节点上使用 Noble => 错误:EAFNOSUPPORT,协议不支持地址系列
- bash - 如何在bash中用转义的星号替换星号?
- python - Discord.py 获取消息链接
- android - 加载下一页项目时,回收站视图进入初始项目
- javascript - 我正在使用选择搜索表单,我试图在输入文本字段中显示选定的值
- node.js - 如何在Node js中将Json缓冲区数据转换为图像
- jenkins - 在 Jenkins 上,有没有办法为每个文件夹的用户授予权限