使用简单的英语为 AutoHotkey 生成正则表达式?

时间:2021-07-27 02:47:10

标签: regex autohotkey

我已经阅读了至少一百遍文档,但仍然无法成功编写正确的正则表达式来替换字符串。

是否有网站建议使用纯英语的 ahk 正则表达式?

尝试了几个网站,但没有奏效: https://i.imgur.com/Gug3qGD.png https://i.imgur.com/QCZVEcT.png

2 个答案:

答案 0 :(得分:1)

虽然简单的英语正则表达式可能会使阅读正则表达式更容易(更冗长)。并不是一些 AI 可以提供任意语句,它会从那里神奇地计算出来(不过那会很好!)。

正则表达式只进行匹配而不是实际替换。

无论如何,如果您只是想替换某个字母或某个单词,您甚至不需要正则表达式:

; Removes all "e's" from "some sentence"
Result := RegExReplace("some sentence", "e", "")
MsgBox % Result
Exit 

所以试着更具体一点,告诉我们你真正想做什么!

如果您想删除所有 4 个字母的单词,您可以尝试

Result := RegExReplace("some sentence", "\b\w[a-z]{3}\b", "")

嘿,选择无穷无尽。我只是说“普通的英语正则表达式”不会对你有多大好处,除非你已经知道至少一些正则表达式。

答案 1 :(得分:0)

基于您提供的示例 [即“从 String1] 中删除 String2。我什至不会理会 RegEx。在大多数可以处理字符串的现代语言(包括 AutoHotkey)中,通常有 StringReplace 函数.

来自AHK docs for StrReplace()

<块引用>

StrReplace() [v1.1.21+]

用新字符串替换指定的子字符串。

ReplacedStr := StrReplace(Haystack, Needle , ReplaceText, OutputVarCount, Limit)

在这里,将 haystack 设置为您的起始字符串(即 String1),并将您的指针设置为您想要摆脱的文本(即 String2)。由于我们不想使用 ReplaceTextOutputVarCountLimit,我们可以省略它们并在那里结束函数的输入。

由此,我们得到

outputVar := StrReplace(String1, String2)

示例:

var := "applemangostrawberry"
var1 := ReplacedStr := StrReplace(var, "a")
MsgBox %var1%

输出:

pplemngostrwberry
相关问题