Patterns and Matchers — Regular Expressions

DEX455 - JSON、XML、ZIP、加密与正则表达式完全指南

📄 第 425 页 🎬 视频课程

课程章节介绍

同学们,今天我们来讲一下Apex里的正则表达式,其实就是模式匹配。这个知识点呢,是直接从Java的正则表达式照搬过来的,所以如果你用过Java,就很容易上手。 首先,我们要用到一个叫Pattern的类。怎么创建一个Pattern呢?很简单,用Pattern.compile方法,把你想匹配的正则表达式作为字符串传进去,就得到一个编译好的模式对象了。有了它之后,再用这个模式的matcher方法,把你想要搜索的字符串,也就是输入,传进去,就会得到一个Matcher对象。 这个Matcher对象就是我们的匹配器,它有三种最常用的匹配方式: 第一种叫matches,它会检查整个输入字符串,是不是完完全全符合我们定义的模式,从开头到结尾,一个字符都不能多。 第二种叫lookingAt,它只检查输入的开头部分,是不是匹配这个模式,后面有没有多余字符都没关系。 第三种叫find,它会在整个输入里反复扫描,找到每一个匹配的子串,就像拿一个探照灯,逐个点亮匹配的位置。 当你用find或者lookingAt找到匹配后,就可以用三个方法提取详细信息:start方法返回匹配到的子串的起始索引,end方法返回结束索引,group方法返回匹配到的文本内容。 另外,Matcher还支持区域限制。你可以给匹配器指定一个输入字符串的子区域,只在这个区域内搜索,外边的部分就自动忽略了。这样做可以提高效率,也能精准控制匹配范围。 说到区域边界,还有一个边界行为的概念。排队边界就是默认的——在区域的起始和结束位置,像一堵墙一样,不能跨边界匹配。但你可以设置成透明的边界,这样就允许匹配时查看区域外边的字符,方便某些需要上下文的正则条件。 最后,我们再简单说一下捕获组。正则表达式里用小括号包起来的部分就是捕获组。组的编号是从左到右,根据左括号出现的顺序来数的。特别注意,组0总是代表整个表达式匹配到的全部内容,第一个左括号是组1,依次类推。 好了,今天关于Apex中的Pattern和Matchers就讲到这里。记住这几个操作和方法,就足够应付日常的正则匹配需求了。大家下课!

关键词

Apex Salesforce Developer Guide