1 # 我 VS 正则 2 3 # 今天我来讲述一下我与正则之间的快乐时光 4 5 # Day1: 6 7 # 首先要导入正则包 8 import re 9 10 # re.match 从头开始向右匹配 匹配到后就结束 11 # re.search 从任意位置开始向右匹配 匹配到后就结束 12 13 14 # 1. 以 h 开头 (只要是‘h’开头就可以) 15 line = "htticjs2123" 16 # line = "ayyehhc" 17 # 匹配 18 match_res = re.match('h',line) 19 # 查看匹配结果 20 if match_res: 21 print('匹配成功') 22 print(match_res) 23 else: 24 print('匹配失败') 25 #-------------------------------------------------- 26 # 2. 以h开头后面跟着一个字符 (只要后面不是空就可以) 27 28 ''' 29 # "." 匹配任意一位字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。 30 31 ''' 32 33 line = "h tticjs2123" 34 # line = "ayyehhc" 35 # 匹配 36 match_res = re.match('h.',line) 37 # 查看匹配结果 38 if match_res: 39 print('匹配成功') 40 print(match_res) 41 else: 42 print('匹配失败') 43 44 #-------------------------------------------------- 45 # 2.1 . 以h开头后面必须跟着一个 `.` 46 # line = 'h111111222' #这种情况不该匹配上 47 line = 'h.22' #这种情况可以匹配上 48 49 50 # 反斜杠使我们的第二个特殊字符 51 match_res = re.match('h.', line) 52 # 需要匹配的字符串, 能不能符合结果 53 if match_res: 54 print('匹配成功') 55 else: 56 print('匹配失败') 57 #-------------------------------------------------- 58 # 2.2 . 以h开头后面必须跟着一个 `\` 59 60 # 'h\' 计算机内部代表的字符串就是 h 61 line = 'h\' 62 print(len(line)) 63 # 'h\\' 计算机内部代表的字符串就是 h\ 64 line2 = 'h\\' 65 print(len(line2)) 66 67 line = 'h ' 68 print(line) 69 print(len(line)) 70 # 'h ' https://www.processon.com/view/link/5b74cb1ee4b053a09c366d87 71 match_res = re.match(r'h ', line) 72 if match_res: 73 print('匹配成功') 74 print(match_res) 75 else: 76 print('匹配失败') 77 #-------------------------------------------------- 78 line = r'h\' 79 print(len(line)) 80 81 # 反斜杠使我们的第二个特殊字符 82 # 当匹配的时候, 字符串内部的 被当做转义字符, h\能够匹配的字符串就是h 83 match_res = re.match('h\\', line) 84 # 需要匹配的字符串, 能不能符合结果 85 if match_res: 86 print('匹配成功') 87 else: 88 print('匹配失败') 89 #-------------------------------------------------- 90 # 2.3 以h开头后面只跟着一个字符 91 line = 'h2k' 92 # $ 特殊字符. 93 match_res = re.match('h.', line) 94 # 需要匹配的字符串, 能不能符合结果 95 if match_res: 96 print('匹配成功') 97 else: 98 print('匹配失败') 99 #-------------------------------------------------- 100 # 3. 以h开头后面跟着任意数量的数字 101 ''' 102 # "d" 匹配任意数字,等价于 [0-9]. 103 # "*" 匹配0个或多个的表达式 104 105 ''' 106 107 line = "h2123xxd" 108 # line = "ayyehhc" 109 # 匹配 110 match_res = re.match('hd.*',line) 111 # 查看匹配结果 112 if match_res: 113 print('匹配成功') 114 print(match_res) 115 else: 116 print('匹配失败') 117 #-------------------------------------------------- 118 # 4. 以3结尾 119 120 ''' 121 # "$" 匹配以该符号前面一个字符结尾的字符串 122 123 ''' 124 125 line = "htticjs2123" 126 # line = "ayyehhc" 127 # 匹配 128 match_res = re.match('.*3$',line) 129 # 查看匹配结果 130 if match_res: 131 print('匹配成功') 132 print(match_res) 133 else: 134 print('匹配失败') 135 #-------------------------------------------------- 136 # 5. 以h开头,以3结尾,中间只有一个字符 137 138 139 line = "h23" 140 # ^ 代表着以这里开头儿 141 # 匹配 'h.3$' '^h.3$' 142 match_res = re.match('^h.3$',line) 143 # 查看匹配结果 144 if match_res: 145 print('匹配成功') 146 print(match_res) 147 else: 148 print('匹配失败') 149 #-------------------------------------------------- 150 # 6. 以h开头,以3结尾,中间可以存在任意数量的字符串 151 line = "htticjs2123" 152 153 # 匹配 'h.*3$' '^h.*3$' 154 match_res = re.match('h.*3$',line) 155 # 查看匹配结果 156 if match_res: 157 print('匹配成功') 158 print(match_res) 159 else: 160 print('匹配失败')