gpt4 book ai didi

regex - Julia - 使用正则表达式从字符串中提取数字

转载 作者:行者123 更新时间:2023-12-02 16:03:45 24 4
gpt4 key购买 nike

我有一个字符串列表,每个字符串告诉我算法在多少次迭代后收敛。

string_list = [
"Converged after 1 iteration",
"Converged after 20 iterations",
"Converged after 7 iterations"
]

如何提取迭代次数?结果将是 [1, 20, 7] .我试过正则表达式。显然 (?<=after )(.*)(?= iteration*)会给我 after 之间的任何东西和 iteration但这不起作用:

occursin(string_list[1], r"(?<=after )(.*)(?= iteration*)")

最佳答案

有一个很棒的小 Julia 包,可以更轻松地创建正则表达式,称为 ReadableRegex ,幸运的是,自述文件中的第一个示例是查找字符串中每个整数的示例:

julia> using ReadableRegex

julia> reg = @compile look_for(
maybe(char_in("+-")) * one_or_more(DIGIT),
not_after = ".",
not_before = NON_SEPARATOR)
r"(?:(?<!\.)(?:(?:[+\-])?(?:\d)+))(?!\P{Z})"

现在可以通过您的字符串列表广播该正则表达式:

julia> collect.(eachmatch.(reg, string_list))
3-element Vector{Vector{RegexMatch}}:
[RegexMatch("1")]
[RegexMatch("20")]
[RegexMatch("7")]

关于regex - Julia - 使用正则表达式从字符串中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69988109/

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