问题描述
我已经阅读了至少一百遍文档,但仍然无法成功编写正确的正则表达式来替换字符串。
是否有网站建议使用纯英语的 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
函数.
StrReplace() [v1.1.21+]
用新字符串替换指定的子字符串。
ReplacedStr := StrReplace(Haystack,Needle,ReplaceText,OutputVarCount,Limit)
在这里,将 haystack 设置为您的起始字符串(即 String1
),并将您的指针设置为您想要摆脱的文本(即 String2
)。由于我们不想使用 ReplaceText
、OutputVarCount
或 Limit
,我们可以省略它们并在那里结束函数的输入。
由此,我们得到
outputVar := StrReplace(String1,String2)
示例:
var := "applemangostrawberry"
var1 := ReplacedStr := StrReplace(var,"a")
MsgBox %var1%
输出:
pplemngostrwberry