正则表达式 非获取匹配
import re print(re.match("win (7|vista)", "win 7").group()) # win 7 print(re.match("win (7|vista)", "win 7").groups()) # ('7',) # (?:pattern) # 非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。 print(re.match("win (?:7|vista)", "win 7").group()) # win 7 print(re.match("win (?:7|vista)", "win 7").groups()) # () # (?=pattern) # 非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。 # exp1(?=exp2):查找 exp2 前面的 exp1。 print(re.match("win (?=7|vista)", "win 7").group()) # win print(re.match("win (?=7|vista)", "win 7").groups()) # () # (?!pattern) # 非获取匹配,正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。 # exp1(?!exp2):查找后面不是 exp2 的 exp1。 print(re.match("win (?!7|vista)", "win 8").group()) # win print(re.match("win (?!7|vista)", "win 8").groups()) # () # (?<=pattern) # 非获取匹配,反向肯定预查,与正向肯定预查类似,只是方向相反。 # (?<=exp2)exp1:查找 exp2 后面的 exp1。 print(re.search("(?<=95|98)win", "98win").group()) # win print(re.search("(?<=95|98)win", "98win").groups()) # () # (?<!pattern) # 非获取匹配,反向否定预查,与正向否定预查类似,只是方向相反。 # (?<!exp2)exp1:查找前面不是 exp2 的 exp1。 print(re.search("(?<!95|98)win", "7win").group()) # win print(re.search("(?<!95|98)win", "7win").groups()) # ()