【发布时间】:2017-07-25 13:38:20
【问题描述】:
在这样的多行字符串中:
She Loves You [Mono],"Past Masters, Vol. 1",4,"She loves you, yeah, yeah, yeah
She loves you, yeah, yeah, yeah
She loves you, yeah, yeah, yeah, yeah"
Eight Days A Week,Beatles For Sale,8,"Eight days a week
I love you.
Eight days a week
Is not enough to show I care."
我想用“¶”(ASCII 代码 182)之类的替换字符替换 EOL (\r\n)引号之间的,以使该字符串成为单行。
结果是:
She Loves You [Mono],"Past Masters, Vol. 1",4,"She loves you, yeah, yeah, yeah¶She loves you, yeah, yeah, yeah¶She loves you, yeah, yeah, yeah, yeah"
Eight Days A Week,Beatles For Sale,8,"Eight days a week¶I love you.¶Eight days a week¶Is not enough to show I care."
我尝试了 StackOverflow 上的各种 RegEx 相关解决方案,但无法将它们调整为我想要的。
我将在 AHK 函数中使用这个 RegEx 表达式:
RegExReplace(Haystack, NeedleRegEx [, Replacement = "", OutputVarCount = "", Limit = -1, StartingPosition = 1])
RegExReplace(MyText, NeedleRegEx???, "¶")
任何帮助表示赞赏。
【问题讨论】:
-
不,它不会修复它。挑战在于仅在引号之间进行替换。
-
我会让我的问题更清楚。
-
我的问题不够清楚。我只在标题中提到了“引号之间”的要求,并没有再次说明问题本身。对于那个很抱歉。请查看已编辑的问题。
-
知道你是否在引号之间是上下文感知的,正则表达式很糟糕,最好留给更聪明的解析器或愚蠢但定制的解析器。我根本不了解 AHK,但我认为您应该旨在提取引用的部分,在这些部分中进行搜索/替换,然后将它们更新回来(或重建整个字符串)。那个或定制的解析器(读取字符,如果遇到引号,则否定“inside-quotes”布尔值,将换行符更改为¶或不取决于布尔值,输出字符)
-
是的。这就是我在当前脚本中所做的,解析整个文件并替换处理引号上下文。但我想知道 RegEx 表达式是否可以以更有效的方式完成。感谢亚伦的投入。
标签: regex autohotkey