正则表达式和提取值

时间:2015-02-24 15:22:27

标签: regex scala gatling

我需要抓住| 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")))

但它不匹配。

同样使用正则表达式测试仪不会让我到任何地方,请帮助我。

2 个答案:

答案 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;在()内部,而是关注你想要的部分的开始和结束位置。特别是在你的例子中 - 引号在你想要的字符串之外,实际上引号正是边缘,所以在我的正则表达式中我捕获它们之间的任何内容。