我正在使用输入框从用户请求具有“sometext5”形式的字符串。我想通过regexp将它分离为字符串组件的变量和数字的变量。然后应该在循环中使用该数字。
以下只返回“0”,即使我输入“itemize5”
形式的字符串!n::
InputBox, UserEnv, Environment, Please enter an environment!, , 240, 120
If ErrorLevel
return
Else
FoundPos := RegExMatch(%UserEnv%, "\d+$")
MsgBox %FoundPos%
retur
名词
答案 0 :(得分:1)
FoundPos
包含针头最左侧出现的位置。 不包含您特别想要与正则表达式匹配的任何内容。%UserEnv%
)。\d+$
只会匹配字符串末尾的数字,而不是之前的文本。可能的解决方案:
myText := "sometext55"
if( RegExMatch(myText, "(.*?)(\d+)$", splitted) ) {
msgbox, Text: %splitted1%`nNumber: %splitted2%
}
如docs中所述,splitted
将设置为伪数组(splitted1
,splitted2
...),每个元素都包含匹配的子模式你的正则表达式(圆括号之间的东西)。