RegEx用于匹配行是否在Julia中包含特殊字符

时间:2019-05-04 02:41:33

标签: regex julia

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,尽管包含正则表达式,但不打印第二行!

如何解决此问题?

2 个答案:

答案 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可能会帮助您弄清楚。

但是,通常,您的模式非常简单,并且您可能不需要正则表达式匹配即可执行此任务。

enter image description here可能会帮助您设计表情。

^app[0-9]+\s=\s\x22([0-9]+)\x22$

中间有一个简单的([0-9]+),您想要的应用程序ID可以通过使用$1来调用它们:

enter image description here

此图显示了表达式的工作方式:

enter image description here