正则表达式在前面找到字符串

时间:2014-05-30 09:07:28

标签: regex

我有一个文本文件,其中包含字符串

orderId=123456

字符串可以更改,但格式应始终为orderId =六个数字。

我想提取六个数字 我尝试使用以下代码

orderId=[0-9]{6}

但我不知道如何删除orderId = 你能帮忙吗?


更新

下面是字符串的示例

"display:none;" name="LanguageSelectionForm" action="http://pippo.com/webapp/wcs/stores/servlet/CabinSelectionView?packageType=onlyCruise&recommendedMaskCommission=false&catalogId=10001&catEntryId=360579&orderId=351026&storeId=10251" method="post" id="LanguageSelectionForm">

我正在使用Jmeter,这个响应来自http响应

3 个答案:

答案 0 :(得分:6)

有几种选择。

Perl,PHP,Ruby 2

\K与此短正则表达式一起使用,

orderId=\K\d{6}

只匹配六位数字。

支持lookbehind的风味

(?<=orderId=)\d{6}

同样,只会匹配六位数字。

其他口味

orderId=(\d{6})

在这里,捕获整个字符串,并在第1组中捕获六位数字,可以用您的语言进行检查。

正则表达式如何工作

  

订单ID = \ķ\ d {6}

  • 字面匹配字符串“orderId =”(区分大小写)orderId=
  • 保持文本匹配到目前为止的整个正则表达式匹配\K
  • 匹配单个字符“数字”(任何Unicode脚本中的0-9)\d{6}
    • 正好6次{6}
  

(小于?=订单ID =)\ d {6}

  • 断言下面的正则表达式可以匹配,匹配结束于此位置(正向后看)(?<=orderId=)
    • 字面匹配字符串“orderId =”(区分大小写)orderId=
  • 匹配单个字符“数字”(任何Unicode脚本中的0-9)\d{6}
    • 正好6次{6}
  

订单ID =(\ d {6})

  • 字面匹配字符串“orderId =”(区分大小写)orderId=
  • 匹配下面的正则表达式并将其匹配捕获到反向引用号1 (\d{6})
    • 匹配单个字符“数字”(任何Unicode脚本中的0-9)\d{6}
      • 正好6次{6}

答案 1 :(得分:1)

这样的表达式将在组1中返回您需要的数字,前提是输入的格式为anyText = 123456

[a-zA-Z]+=(\d{6})

如果开头的字符串没有改变,那么只需这样做:

orderId=(\d{6})

答案 2 :(得分:0)

在Jmeter中使用Regex Extractor获取下面提到的字符串:

  

&#34;显示:无;&#34;命名=&#34; LanguageSelectionForm&#34;行动=&#34; http://pippo.com/webapp/wcs/stores/servlet/CabinSelectionView?packageType=onlyCruise&amp;recommendedMaskCommission=false&amp;catalogId=10001&amp;catEntryId=360579&amp;orderId=351026&amp;storeId=10251&quot;方法=&#34;后&#34; ID =&#34; LanguageSelectionForm&#34;&GT;&#13;

正则表达式(提取orderId):&#34; .orderId =(。+?)&amp;。&#34;

参考链接:http://www.tutorialspoint.com/jmeter/jmeter_regular_expressions.htm

希望这会有所帮助。