zoukankan      html  css  js  c++  java
  • 用正则匹配多行文本

    如果有这样一个字符串

             $var = "src = arr.c build.c eval.c field.c

                                      missing.c msg.c re.c version.c"

    用一般的^w+s*=s*.*$只能匹配上面的那句,而下面的那一句就无法匹配了

    方法一:使用的是perl

    $var = "src = arr.c build.c eval.c field.c 
                              missing.c msg.c re.c version.c";
    
    $var =~ m/((^w+s*=s*.*)(
    .*))/;
    print "$1: ".$1."
    ";
    print "$2: ".$2."
    ";
    print "$3: ".$3."
    ";

     结果为:

    1: src = arr.c build.c eval.c field.c 
                              missing.c msg.c re.c version.c
    2: src = arr.c build.c eval.c field.c 
    3: 
                              missing.c msg.c re.c version.c
    


    注:这里能够匹配成功是因为perl的点号" ."能够匹配除了换行符号之外的字符,然后在加上换行符号" "

    和任意符号".*"就把全部匹配完成了

    方法二:有的正则引擎把点号"."解析可以匹配换行符" "那可以这样

    $var =~ m/((^w+s*=s*[^
    ]*)(
    .*))/

    效果跟刚才的那个一样,只是把点号替换为了"[^ ]",这样就排除了换行符号了。


  • 相关阅读:
    invokerequied
    C#如何用正则表达式截取https和带端口的域名
    flex datagrid combox
    java webservice
    Flexlib 控件 http://code.google.com/p/flexlib/
    Git使用
    转:Vim常用命令
    转:oracle连接查询
    Axis2 spring发布WebService
    oracle jdbc example 示例
  • 原文地址:https://www.cnblogs.com/pangblog/p/3275789.html
Copyright © 2011-2022 走看看