gpt4 book ai didi

julia 到正则表达式匹配文件中的行,如 grep

转载 作者:行者123 更新时间:2023-12-05 00:14:19 24 4
gpt4 key购买 nike

我想看到 julia 的代码片段,它将读取文件并返回与正则表达式匹配的行(字符串类型)。

我欢迎多种技术,但输出应等效于以下内容:

$> grep -E ^AB[AJ].*TO' 'webster-unabridged-dictionary-1913.txt'

ABACTOR
ABATOR
ABATTOIR
ABJURATORY

我在这里使用 GNU grep 3.1,文件中每个条目的第一行本身就是全部大写的单词。

最佳答案

我最喜欢的解决方案使用一个简单的循环并且非常容易理解。

julia> open("webster-unabridged-dictionary-1913.txt") do f
for i in eachline(f)
if ismatch(r"^AB[AJ].*TO", i) println(i) end
end
end

ABACTOR
ABATOR
ABATTOIR
ABJURATORY

笔记
  • 带有制表符分隔的行保留制表符(没有 '\t' 的文字输出)
  • 在这个例子中,我的源文件在定义上方的一行中单独包含所有大写的字典单词;返回完整的行。
  • 文件 I/O 操作包含在 do block syntax structure 中,它比lamba更方便地表达匿名函数x -> f(x)多行函数的语法。这对于文件 open() 尤其具有表现力。命令,定义为 try-finally-close以函数作为参数调用时的操作。
  • Julia docs: Strings/Regular Expressions
  • 正则表达式对象采用 r"<regex_literal_here>" 的形式
  • 正则表达式本身是一个字符串
  • 基于 perl PCRE library
  • 匹配成为正则表达式匹配对象

  • 例子
    julia> reg = r"^AB[AJ].*TO";
    julia> typeof(reg)
    Regex

    julia> test = match(reg, "ABJURATORY")
    RegexMatch("ABJURATO")

    julia> typeof(test)
    RegexMatch

    关于julia 到正则表达式匹配文件中的行,如 grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47213946/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com