我需要抓住| value |下面:
{"token":"<input name=\"__RequestVerificationToken\" type=\"hidden\" value=\"KhWUxVIL697p18Gm3T1b4pCmXjK7iQujsJieYiLOKcKmKbdvC55kgaqg4G-uGqeUzmV3x6EMAV_ejPHe-Ok2kFqnjzVmvZmHySMpwKzGvq01\" />"}
什么样的正则表达式会与之匹配?
我试过这个:
.check(regex("input name='__RequestVerificationToken' type='hidden' value='([A-Za-z0-9+=/'-'_]+?)'").saveAs("token")))
但它不匹配。
同样使用正则表达式测试仪不会让我到任何地方,请帮助我。
答案 0 :(得分:0)
我会用这样的东西:
regex("<input.+__RequestVerificationToken.+value=\\?(\"|\')(.+)\\?(\"|\').+>")
它可以缩短,但我不确定实际的示例字符串是什么样的(它是否同时具有转义字符,是使用单值还是双值)。
答案 1 :(得分:0)
假设您的问题中的字符串与其显示的方式完全相同,使用转义双引号 \&#34; 等。 这是代码:
val regexGroupExtractor = """.*value=\\"(.*)\\".*""".r
val regexGroupExtractor(e) = s
// e == "KhWUxVIL697p18Gm3T1b4pCmXjK7iQujsJieYiLOKcKmKbdvC55kgaqg4G-uGqeUzmV3x6EMAV_ejPHe-Ok2kFqnjzVmvZmHySMpwKzGvq01"
通常使用正则表达式来反复思考模式通常很有帮助:不是指定包含的内容,而是指定不包含的内容。在你的情况下,没有必要指定&#34;&#34;&#34;在()内部,而是关注你想要的部分的开始和结束位置。特别是在你的例子中 - 引号在你想要的字符串之外,实际上引号正是边缘,所以在我的正则表达式中我捕获它们之间的任何内容。