无法使用Regex捕获用户名密码值,请求排查正则匹配问题
问题分析与解决方案
你的正则表达式之所以会捕获整个字符串,核心问题是没使用捕获组单独提取目标内容,而是匹配了包含标签在内的完整片段,最终得到的自然是整段匹配结果,而非单独的用户名或密码。
问题根源
你当前的正则写法:
Username : [A-Za-z]+ Password : admin123会匹配从Username :到admin123的全部内容,而非只提取Admin;Username : Admin Password : [A-Za-z0-9]+同理,会匹配整段文本,而非只提取admin123。
修正后的正则与代码
要单独提取目标值,需用括号()标记捕获组,只锁定需要的部分:
提取用户名的正则
Username : ([A-Za-z]+)
该正则会精准捕获Username :后的字母内容(即Admin)。
提取密码的正则
Password : ([A-Za-z0-9]+)
该正则会精准捕获Password :后的字母数字内容(即admin123)。
修正后的代码逻辑
grab value from "orangehrm-login-error" and save it as "CRedentials" grab value of regex "Username : ([A-Za-z]+)" from stored value "CRedentials" and save it as "Uname" grab value of regex "Password : ([A-Za-z0-9]+)" from stored value "CRedentials" and save it as "Pword" enter stored value "Uname" into "Username" enter stored value "Pword" into "Password"
修改后就能精准提取单独的用户名和密码,而非整个字符串。
内容的提问来源于stack exchange,提问作者Guru
相关产品推荐
相关产品推荐

