- 签证留学 |
- 笔译 |
- 口译
- 求职 |
- 日/韩语 |
- 德语
最简单的正则表达式是由简单字符构成的一个序列。例如,要搜索woodchuck,可以键入/woodchuck/这个正则表达式。这样,正则表达式 /Buttercup/就与包含子字符串Buttercup的任何字符串相匹配,例如I'm called little Buttercup(我们假定在这个搜索应用中返回的是整行)。从此处起,我们将在正则表达式的前后加斜线“/”,以便区分正则表达式和模式。之所以使用斜线,是因为这种表示法是Perl使用的,但在这种表示法中斜线并不是正则表达式的一部分。
搜索符号串可能只包含一个单独的字母(如/!/),或者包括字母序列(如/urgl/)。我们在与正则表达式相匹配的第一个例子下面加了下划线(实际上也可以选择返回比第一个例子更多的东西)。
正则表达式是区分大小写的(case sensitive);小写/s/区别于大写/S/;/s/与小写s匹配,/S/与大写S匹配。这意味着,/woodchuck/与字符串Woodchuck不匹配。我们使用方括号“[”和“]”来解决这个问题。内部有括号的字符串表示所匹配的字符是析取(disjunction)的。例如,图2表明,与/【wW]/匹配的模式中或者包含w,或者包含W。
正则表达式/[1234567890]/可以表达任何简单数字。类似数字或字母的字符都是构成表达式的重要建筑材料,它们处理起来有时会变得很不方便。例如,当我们用“任意大写字母”正则表达式
/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/
来描述任何大写字母时,就显得很不方便。在这样的情况下,可以用连字符(-)来表示在某一范围(range)内的任何字符。正则表达式/[2-5]/表示字符2,3,4和5范围内的一个任意符号。正则表达式/[b-g]/表示字符b,c,d,e,f和g范围内的一个任意符号。下面是其他的例子:
通过使用脱字符(^),方括号还可以用来表示不出现某个单独的字符。如果在开方括号之后有脱字符,那么相应的模式就是否定的。例如,正则表达式/[^a]/与任何不包含a的单个字符相匹配。但是,这种用法仅当脱字符处于开方括号之后的第一个位置时才有效。如果脱字符出现在其他位置,它只能表示脱字符本身。图4是一些具体的例子。