1、在我们使用正则表达式中,有时要按照正则表达式语法手动翻译一些字符串,非常繁琐而且手动非常不便,比如,我们想匹配'fire\team\nice'这个字符串,却不能直接传入regexp函数,因为其中有正则表达式转义字符'\t'和'\n',会被视为tab和换行。我们直接使用regexptranslate函数翻译,得到'fire\\team\\nice',这个表达式就是原字符串等价的正则表达式。
2、regexptranslate函数有两种模式,步骤1说的是第一种'escape'模式。这种模式下,将字符串按照字面意思翻译。如图,翻译一个字符串,其中的字符[]$?()这些,都被转义。
3、如下是使用这种模式翻译字符串的一个简单示例。我们要从一段长长的对话中匹配出两句,将这两句翻译为正则表达式再匹配,得到匹配结果。
4、regexptranslate函数的第二种模式是'wildcard'模式。这种模式用于转换通配符。通配符常见于搜索文件时使用,比如'*.exe'搜索exe文件,'????.jpg'可以搜索到文件名为四个字符的jpg文件。regexptranslate函数可以把通配符翻译成具有同样匹配功能的正则表达式。如图。
5、如下图,是一个用正则表达式匹配文件名的例子。请注意这里启用了'dotexceptnewline'选项,来防止'.'匹配时通过换行符。