【问题标题】:How to find texts and replace them using RegEx如何使用 RegEx 查找文本并替换它们
【发布时间】:2012-08-15 15:42:50
【问题描述】:

以下是我的长文摘录:

As a young researcher, he is required:
\n ÷ to read at least three theses\n ÷ to meet his tutor or supervisor 
once a week\n ÷ to join seminars\n

现在我想找到以÷ 开头并以\n 结尾的任何块,并将÷ 替换为÷<font color="blue">\n 替换为</font>\n。因此,例如,我上面的摘录将如下所示:

As a young researcher, he is required:
\n ÷<font color="blue"> to read at least three theses</font>\n ÷<font color="blue"> 
to meet his tutor or supervisor once a week</font>\n ÷<font color="blue"> to join seminars</font>\n

到目前为止,我一直在 TextWrangler 中使用这些 Grep 来查找和替换:

(÷[^ \t/<>]*?).*?([^ \t/<>]*?\\n)

<font color="blue">\1\2</font>\3

已成功找到所需的文本块,但替换没有按预期进行。

我正在使用 TextWrangler,但可能可以访问 BBEdit 或 Notepad++。

你能帮我解决这个问题吗?非常感谢。


更新

感谢 DesertEagle,我找到了解决方案。代码如下:

÷([^\\n]+)\\n
÷<font color="blue">\1</font>\\n

【问题讨论】:

  • 替换是如何工作的?您可以发布该搜索和替换的结果吗?

标签: regex grep wildcard textwrangler


【解决方案1】:

虽然我手头没有 textwrangler,但这应该对你有用 [1]

搜索 /÷([^\n]+)\n/

编辑 textwrangler 的正确语法是 ÷([^\\n]+)\\n

替换 ÷&lt;font color="blue"&gt;\1&lt;/font&gt;\n

[1] 请确保您的引擎正确转义

【讨论】:

  • 非常感谢,但是这个没有找到。
  • 尝试用*替换+
  • 正如我所说,我无法访问 textwrangler,但我只是看到了我的一个坏习惯:删除正则表达式分隔符 (/.../)。
  • 你为我节省了一天的时间。非常感谢你。对您的代码稍作改动就可以解决问题。请查看我的更新。
猜你喜欢
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
  • 2019-11-06
  • 2013-04-11
  • 1970-01-01
  • 2021-10-16
  • 2017-04-11
相关资源
最近更新 更多