Julia 如何使用替换为捕获组?

Julia 如何使用替换为捕获组?,julia,Julia,我想在First+Last name(\nJohn Smith\t)出现后,在tsv文件中添加两个选项卡分区: dl=readstring(fileName) dl=replace(dl,r"(\n[A-Za-z\s]+\t)","\1\t\t") 我的名字和姓氏被替换为x01。文档中说了一些关于替换字符串的内容,但我找不到实现 更新:这将替换组 dl=replace(dl,r"(\n[A-Za-z\s]+\t)",s"\1") 但这是: dl=replace(dl,r"(\n[A-Za-z

我想在First+Last name(
\nJohn Smith\t
)出现后,在tsv文件中添加两个选项卡分区:

dl=readstring(fileName)
dl=replace(dl,r"(\n[A-Za-z\s]+\t)","\1\t\t")
我的名字和姓氏被替换为
x01
。文档中说了一些关于替换字符串的内容,但我找不到实现

更新:这将替换组

dl=replace(dl,r"(\n[A-Za-z\s]+\t)",s"\1")
但这是:

dl=replace(dl,r"(\n[A-Za-z\s]+\t)",s"\1\t\t")

导致错误
错误更换
。没有
\
的符号看起来很好。

我觉得它像个bug。但您可以使用变通方法:

julia>dl=“\nJohn-Smith\t”;
julia>s=Base.SubstitutionString;
julia>dl=replace(dl,r“(\n[A-Za-z\s]+\t)”,s(\\1\t”))
“\n约翰·史密斯\t\t”
编辑:

我认为这样更好:

julia>dl=“\nJohn-Smith\t”;
julia>dl=replace(dl,r“(\n[A-Za-z\s]+\t)”,@s_str(“\\1\t”))
“\n约翰·史密斯\t\t”
顺便说一句,如果您想在捕获组后追加数字,则可以执行其他技巧(命名组):

julia>替换(“aAa”,r“(?A+),s“\g1”)
“aA1a”