首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >特定搜索模式RegExp

特定搜索模式RegExp
EN

Stack Overflow用户
提问于 2016-02-18 06:05:03
回答 3查看 72关注 0票数 0

我是RegExp的新手,但我做了一些基础教程。从下面,我需要能够提取以下内容。您的帮助将提高我对RegExp的理解。

提取字符串:

代码语言:javascript
运行
复制
2016-02-17 19:59:18,182 GMT [transaction-Id=47ad8e96-1db8-4b41-85e5-9256fca485ab] [request_uri=/mydevice/2232234] [] INFO Response:{"executionTimeInMillis":54,"transactionId":"3191569800","success":false,"internalTransactionId":"47ad8e96-1db8-4b41-85e5-9256fca485ab","operationResults":[{"operation":"addDevice","code":"409","message":"Cannot add device"}]}

要提取的输出字符串值:

  1. 47ad8e96-1 db8-4b41-85e5-9256fca485ab
  2. 22xs32234
  3. {"operation":"addDevice","code":"409","message":"Cannot add device"}
EN

回答 3

Stack Overflow用户

发布于 2016-02-18 06:11:47

代码语言:javascript
运行
复制
transaction-Id=(.*?)].*?request_uri=(.*?)].*?"operationResults":[(.*?)]

抽取$0,$1,$2

票数 1
EN

Stack Overflow用户

发布于 2016-02-18 06:37:37

Perl代码:

代码语言:javascript
运行
复制
    #!/usr/bin/perl

    use strict;
    use warnings;

    my $string = '2016-02-17 19:59:18,182 GMT [transaction-Id=47ad8e96-1db8-    4b41-85e5-9256fca485ab] [request_uri=/mydevice/2232234] [] INFO Response:{"executionTimeInMillis":54,"transactionId":"3191569800","success":false,"internalTransactionId":"47ad8e96-1db8-4b41-85e5-9256fca485ab","operationResults":[{"operation":"addDevice","code":"409","message":"Cannot add device"}]}';


    if($string =~ /(?:transaction\-Id=)(.*)\] \[(?:request_uri=\/mydevice\/)(.*)\] \[.*(?:operationResults.:\[)(.*)\]\}$/ig){
       print "$1\n$2\n$3\n";
    }
    else{
        print "no match\n";
    }
票数 1
EN

Stack Overflow用户

发布于 2016-02-18 18:19:57

(?<=[\/=\[])([^\/=\[]+)(?=\])如果你想要参考匹配,(?<=[\/=\[])[^\/=\[]+(?=\])如果你不想。

"22xs32234“预期结果正确吗?因为"2232234“是原来的字符串。如果是,那么这些表达式还没有准备好。

演示

另一种运行步骤较少的解决方案(更快,但发现它返回了您不想要的整个URI ):(?<=transaction-Id=|request_uri=|operationResults.:\[)[^\]]+

演示

最后是最后一个固定版本(比第一个版本更快):(?<=transaction-Id=|request_uri=|operationResults.:\[)(?:\/[^\]]+\/)?([^\]]+)

演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35474024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档