jmeter中的正则表达式不匹配包含子字符串的字符串

时间:2017-12-05 15:06:43

标签: regex jmeter

我的回复数据是 -

的MyString = 01015400007715243552T2867X01051005012447 / 3 /七分之一千二百○七\ u0026index = 2

的MyString = 014274的 X9 000010152435500000MT2867X0154992365418 / 3 /七分之一千二百○七\ u0026index = 3

我想写一个正则表达式来匹配第一个字符串并忽略第二个字符串,下面是我的要求。

正如我在第二个字符串中突出显示的那样,如果值包含X9,则我不应该匹配该字符串。

我试过很多正则表达式,但是dint帮了我很多。 我试过MyString =(。* [^ X9]。+?)u0026 请有人帮帮我

2 个答案:

答案 0 :(得分:1)

您可以尝试使用以下正则表达式:

MyString=(?:(?!X9).)*\\u0026

演示:

JMeter Regular Expression Not Match

参考文献:

答案 1 :(得分:1)

您可能使用的正则表达式是

MyString=((?:(?!X9).)*?)u0026

或者,为了避免在反斜杠中匹配,

MyString=((?:(?!X9).)*?)\\u0026

或者,如果\\u0026实际上只是&的代表(并且您实际上有&),请使用

MyString=((?:(?!X9)[^&])*)

(?:(?!X9).)*?是一个tempered greedy token,匹配任何字符,尽可能少,不会启动X9序列。

<强>详情

  • MyString= - 文字子字符串
  • ((?:(?!X9).)*?) - 任何char,0+重复,尽可能少(因为*?是一个惰性量词,迫使正则表达式引擎首先跳过可量化模式并尝试所有后续模式,并且仅如果他们没有匹配,那么#34;扩展&#34;),直到第一次出现X9
  • u0026 - 文字子字符串