app_ids.txt文件具有以下格式:
app1 = "0123456789"
app2 = "1234567890"
app3 = "2345678901"
app4 = "3456789012"
app5 = "4567890123"
使用以下代码在文件find_app_id.jl中打印包含给定正则表达式的行:
#! /opt/julia/julia-1.1.0/bin/julia
function find_app_id()
app_pattern = "r\"app2.*\"i"
open("/path/to/app_ids.txt", "r") do apps
for app in eachline(apps)
if occursin(app_pattern, app)
println(app)
end
end
end
end
find_app_id()
$ / home / julia / find_app_id.jl,尽管包含正则表达式,但不打印第二行!
如何解决此问题?
答案 0 :(得分:3)
您的正则表达式看起来很奇怪。如果将分配给app_pattern
的行更改为
app_pattern = r"app2.*"
它应该更好地工作。
例如,以下代码在运行时显示“找到它”:
app_pattern = r"app2.*"
if occursin(app_pattern, "app2 = blah-blah-blah")
println("Found it")
else
println("Nothing there")
end
好运。
答案 1 :(得分:1)
我不确定,this post中的正则表达式匹配如何工作,This RegEx可能会帮助您弄清楚。
但是,通常,您的模式非常简单,并且您可能不需要正则表达式匹配即可执行此任务。
^app[0-9]+\s=\s\x22([0-9]+)\x22$
中间有一个简单的([0-9]+)
,您想要的应用程序ID可以通过使用$1
来调用它们:
此图显示了表达式的工作方式: