前面我们提到过怎么查找不是某个字符或不在某个字符类里的字符的方法(反义)。但是如果我们只是想要确保某个字符没有出现,但并不想去匹配它时怎么办?例如,如果我们想查找这样的单词--它里面出现了字母q,但是q后面跟的不是字母u,我们可以尝试这样:\b\w*q[^u]\w*\b匹配包含后面不是字母 u 的字母 q 的单词。
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。很可能你使用过 Windows/Dos 下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的 Word 文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。
完整解决方案Sunny 软件公司开发人员使用访问者模式对 OA 系统中员工数据汇总模块进行重构,使得系统可以很方便地增加新类型的访问者,更加符合“单一职责原则”和“开闭原则”,重构后的基本结构如图所示: 在图中,FADepartment 表示财务部,HRDepartment 表示人力资源部,它们充当具体访问者角色,其抽象父类 Department 充当抽象访问者角色;