JMeter 中的正则表达式在正则表达式测试器中工作时抛出错误

Regular Expression in JMeter throws an error where as it is working in fine regex tester

我收到了之前请求的回复。我正在尝试使用正则表达式来获取所需的文本。我的回复如下

{
  "screen": {
    "heading": "HEADING",
    "content": {
      "lines": [
        "Scan the source CBSE. "
      ]
    },
    "prompt": {
      "default": "",
      "display_value": "HEADING",
      "masked": {
        "on": "FALSE",
        "char": "*"
      }
    }
  }
}

在上面的 json 回复中,我试图提取 CBSE 这个词。我在正则表达式测试器中使用以下正则表达式 - (?<=Scan the source ).*(?=. ")

但是当我在 JMeter 中检查相同内容时出现错误,并且它也没有保存在变量中。

JMeter 错误: org.apache.oro.text.MalformedCachePatternException: 无效表达式: (?<=扫描源码).*(?=. ") 序列 (?<...) 无法识别

我认为您的正则表达式对 Jakarta ORO 语法无效,请尝试更简单的方法,例如:

"Scan the source\s*(.+?)\. "

另请注意,JMeter 提供了 Boundary Extractor,因此只需提供“左”和“右”边界就足够了,JMeter 将获得中间的所有内容:

此外,此方法消耗的资源较少,有关详细信息,请参阅 The Boundary Extractor vs. the Regular Expression Extractor in JMeter 文章。