0

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

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 个字符,没有 &x,&x 始终存在第一个字符串我的 reg ex 在这里我得到的有点生疏: (&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-20dc20c df58-4c1c-9b50-96964c93e927

4

1 回答 1

1

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

这仅匹配您的目标:

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

最后一项是前瞻,它断言但不捕获等号。


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

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

在 rubular 上查看现场演示

于 2013-09-23T21:53:42.730 回答