【问题标题】:Matching multiple lines using single regexp使用单个正则表达式匹配多行
【发布时间】:2023-02-09 01:13:42
【问题描述】:

我有一个文件,其中包含

人物:男

宠物:狗,猫,

人物:女

宠物:狗、猪

像这样有很多人的数据 我只想获取男性的数据。 我正在尝试匹配两条线。那是行不通的

    while{[gets $fh line] > 0} {
     if {[regexp {(person: male.*)\n(pets :.*)} $line match submatch]} {
    puts $match 
    puts $submatch
    }

 }

【问题讨论】:

    标签: regex tcl file-handling


    【解决方案1】:

    你的问题是你一次只读一行。如果您在(read)中读取整个文件,那么您可以进行多行匹配。

    如果您正在进行多行匹配,您可能会发现 -lineregexp 的选项很有用,因为这意味着如果您明确地将换行符放入模式中,它只会匹配换行符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多