正则表达式提取长十六进制字符串

时间:2013-09-23 21:38:53

标签: regex jmeter

我想用正则表达式提取ajaxBrowserNavigationCheck之后的值('& x,然后在=以下javascript代码之前:

if (ajaxBrowserNavigationCheck('&x909ef93d-61ac-4311-ac56-20c2ae9770f5=7ebdc2a4-df58-4c1c-9b50-96964c93e927', '', 'servletcontroller', '')){
    processBrowserNavigationButton();

基本上我想要的额外值是& x909ef93d-61ac-4311-ac56-20c2ae9770f5 (=之前的值,我们需要& x)    和 7ebdc2a4-df58-4c1c-9b50-96964c93e927 (=后的值)

请注意,该值有两次(在MODE = BROWSER_NAV之后)   请注意,这两个值都有36个char而没有& x   & x总是存在第一个字符串   到目前为止,我的注册表在这里有点生疏: (& x([0-9a-fA-F] | - )+)让我第一部分

(& x([0-9a-fA-F] | - )+)|(=([0-9a-fA-F] | - )+)给我两个但是=我们不想要它......

编辑:对不起,我忘记了这个语言,这是一个使用jakarta ORO的jmeter脚本。

Edit2:我意识到我可以将它们分成两个变量甚至三个jmeter,这样可以更容易一些。

Edit3:我删除了窗口位置部分,因为它有误导性,因为它在ajax部分是相同的。 在 ajaxBrowserNavigationCheck('& x909ef93d-61ac-4311-ac56-20c2ae9770f5 = 7ebdc2a4-df58-4c1c-9b50-96964c93e927','','servletcontroller','')) 我们想要& x909ef93d-61ac-4311-ac56-20c2ae9770f5 7ebdc2a4-df58-4c1c-9b50-96964c93e927

1 个答案:

答案 0 :(得分:1)

你还没有说过你使用的语言,所以很难给出一个可靠的答案。

这只匹配你的目标:

&x[a-fA-F0-9-]*(?==)

最后一个术语是向前看,它断言但不捕获等号。


此正则表达式匹配所有输入并将每个目标捕获两次作为组1和2:

(?m).*?(&x[a-fA-F0-9-]*)=.*(&x[a-fA-F0-9-]*)=.*

在rubular上查看live demo