语法注意点:
1,贪婪匹配
即最长匹配原则,默认情况下,正则表达式使用这种匹配原则;
比如:将“zoom”中匹配“zo*”(z后跟1或多个o)的部分替换为“r”,使用这种匹配原则的结果是“rm”;
2,非贪婪匹配
即最短匹配原则,当字符“?”紧跟在其他限定符(*、+、?、{n}、{,n}、{n,m})之后时,就使用这种匹配原则;
比如:在字符串“fooooood”中“fo+?”只匹配“fo”;
3,(?:pattern)表示不把pattern作为子匹配,在捕获缓存中不会保存它匹配的值;即用于只是为了分组的情况;
4,(?=pattern)称为正向“预测先行”匹配,如:
将“windows(?=NT|2000)”作为正则表达式模式,它只与“windows2000”
或“windowsNT”中的“windows”匹配,而且返回的匹配结果只有“windows”这个子匹配值也不会保存在缓冲中;即用于匹配以某个字符结束的情况;
5,(?!Pattern)称为反向“预测先行”匹配,它表示在
正则表达式中的匹配位置不允许出现pattern;如:
将“windows(?=NT|2000)”作为正则表达式模式,它不与“windows2000”或“windowsNT”中的“windows”匹配,而是与“windows20003”等情况匹配,即windows后不能出现NT和2000;其他的和正向“预测先行”匹配相同