我正在尝试使用replace
函数,doc指定
replace(string :: AbstractString,pat,r [,n :: Integer = 0])
搜索给定的模式pat,并用r替换每个匹配项。如果提供n,则最多替换n次。 与搜索一样,第二个参数可以是单个字符,向量或一组字符,字符串或常规字符 表达。如果r是一个函数,则每次出现都被替换为r(s),其中s是匹配的子字符串。如果pat是一个 正则表达式和r是SubstitutionString,然后r中的捕获组引用被替换为 相应的匹配文本。
我不明白最后一句,但找不到SubstitutionString
(虽然有SubString
,但我也无法直接找到该文档)。我想在r
使用pat
中指示的已捕获组进行替换。与Python中的以下简单示例相对应的东西:
regex.sub(r'#(.+?)#', r"captured:\1", "hello #target# bye #target2#")
返回'hello captured:target bye captured:target2'
。
答案 0 :(得分:7)
可以通过SubstitutionString
创建s""
。与您使用r""
创建正则表达式的方式类似。
我想这就是你要找的东西:
julia> replace("hello #target# bye #target2#", r"#(.+?)#", s"captured:\1")
"hello captured:target bye captured:target2"
如果您在https://docs.julialang.org/en/stable/manual/strings/中搜索substitution string
,那么您会在那里找到另一个例子。