微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用简单的英语为 AutoHotkey 生成正则表达式? 用新字符串替换指定的子字符串

如何解决使用简单的英语为 AutoHotkey 生成正则表达式? 用新字符串替换指定的子字符串

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

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

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

解决方法

虽然简单的英语正则表达式可能会使阅读正则表达式更容易(更冗长)。并不是一些 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","")

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

,

基于您提供的示例 [即“从 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。