作为搜索替换文本的强大工具,正则表达式(通常被称为“Grep”)可能会让初学者望而生畏——好在有《BBEdit》。这款 App 的“Pattern Playground”(模式园地)功能可以让开发者与写作者更加轻松地学习运用这种看似晦涩难解的语法。
正则表达式语法能让你快速找到并修改特定文本模式——比如用“dd/mm/yyyy”格式替换所有日期,无论原始格式是怎样的。《BBEdit》的互动式“Pattern Playground”功能为你提供搜索与替换内容的实时预览,你可以利用它来轻松学习正则表达式。
下面,就来看看怎样通过“Pattern Playground”模拟在实际工作文件上应用正则表达式吧——这不会改变原有数据,除非你想改变它们。
“Pattern Playground”能为你提供一个“安全区”,来学习复杂难懂(但非常实用)的正则表达式。
选择模式
首先,选择“File”(文件)>“New”(新建)>“Pattern Playground”。想要在现有文档中进行练习,从“Contents of”(内容引用自)弹出菜单中选中它即可;你也可以在“Contents of”框中粘贴一些文本进行练习。
《BBEdit》提供了一系列示范模式,每种都伴有简介,解释该模式的匹配对象。比如,你可以看到“ab|cd”会匹配任何出现“ab”或“cd”的情况。点按模板菜单(问号按钮),选择模式添加到“Search pattern”(搜索模式)框中。你也可以手动输入模式。
语法着色功能可以清楚地显示出你的模式中的哪些部分将被解读为分隔符(比如圆括号和方括号),哪些是变量。
在你输入的同时,《BBEdit》可以马上告诉你一共有多少个匹配,并高亮标出第一个对象;点按“Next”(下一个)切换到下一个对象。
应用替换
你还可以用“Pattern Playground”练习替换文本。在“Replace pattern”(替换模式)框中输入文本,在切换匹配对象的同时,“Replacement text”(替换文本)栏就会显示将如何具体应用每项改动。
“Pattern Playground”还能把复杂搜索模式拆解为多个部分,并显示与每一个部分相匹配的具体文本。然后,你就可以把这些部分作为替换文本中的变量了。
同样的正则表达式语法也适用于《BBEdit》的“Find”(查找)对话框。
学以致用
完善你的模式后,即可将它用在原本的文档上。点按“Use for Find”(应用到“搜索”)把你的设置拷贝到《BBEdit》的主搜索对话框里。
如果你经常需要使用同一个模式,可以从“Pattern Playground”的近期模式菜单里调用,或者将它保存起来以便快速调用。这些菜单与模板菜单都在主搜索对话框中供你调遣。