exp1(?=exp2)       查找exp2前面的exp1      // 前瞻:
(?<=exp2)exp1      查找exp2后面的exp1      // 后顾:
exp1(?!exp2)       查找后面不是exp2的exp1  // 负前瞻:
(?<!exp2)exp1      查找前面不是exp2的exp1  // 负后顾:

(?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来,也就无法用%1 $1 1等关键词调用,需要用到括号又不想因此干扰结果的情况下很好用

regex×
ab+c(*和?同理)abababcabbbbbbbc
ab{2}abababb
a|123a23a或者123