【发布时间】:2023-03-06 11:24:02
【问题描述】:
我在一堆 RTF 文档中找到一个替换,我需要的基本模式是
\{(?:\\\*)?\\field\\fldlock\{\\\*\\fldinst ?MERGEFIELD ?((?:\\.*?)?[\w\[\]]+?)(?:\\.*?)?\}(?:\{\\fldrslt\})?\}
但是我后来发现每个斜杠之前可能有一个换行符,所以它变成了这个。
\{(?:\s*\\\*)?\s*\\field\s*\\fldlock\s*\{\s*\\\*\s*\\fldinst\s*MERGEFIELD\s*((?:\\.*?)?[\w\[\]]+?(?:\s*\\.*?)?)?\s*\}(?:\s*\{\s*\\fldrslt\s*\})?\s*\}
但后来我点击它失败了
fees totaling $\protect {\field\fldlock{\*\fldinst MERGEFIELD ENTEROUTSTANDINGVETERINARYF
EES}}\plain\f0\fs24\prot
有没有办法让它在搜索的任何地方都匹配一个新行而不在任何地方添加(?:\r?\n)??
编辑
消除对新行的混淆。我需要在文档中保留换行符,如果它们在我的匹配项中,我只想删除它们,所以在我发布的最后一个示例中它应该替换
fees totaling $\protect {\field\fldlock{\*\fldinst MERGEFIELD ENTEROUTSTANDINGVETERINARYF
EES}}\plain\f0\fs24\prot
与
fees totaling $\protect ENTEROUTSTANDINGVETERINARYFEES\plain\f0\fs24\prot
【问题讨论】:
-
有些人在遇到问题时会想“我知道,我会使用正则表达式”。现在他们有两个问题。 - Jamie Zawinski,alt.religion.emacs,8/12/97
-
有些人在遇到正则表达式时会想“我知道,我会使用我记得的引人入胜的引语”。现在他们没有在讨论中添加任何内容。 – Tomalak,SO, Jul 8 '09 at 14:27