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*[^
    ]*)(
    .*))/

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


  • 相关阅读:
    UITextField editingDidEnd 不调用(不响应)
    修改 Navigation Bar 返回按钮文字和图片
    HTTPS抓包
    brew 基本使用方法
    Linux基本命令
    AR 初探
    汇编学习
    ios GCD ---- (1)
    axios导出或者下载
    Vue绑定图片src出现的问题
  • 原文地址:https://www.cnblogs.com/pangblog/p/3275789.html
Copyright © 2011-2022 走看看