正则表达式01——入门
F12-打开网页源码界面1.正则表达式的使用正则表达式测试网站https://regex101.com/限定符符号作用例子??前面的字符需要出现 0 次或 1 次**前面的字符需要出现 0 次或 多 次b可出现也可以不出现前面的字符需要出现1次以上b出现1次以上{}规定{}前字符出现的次数b出现2-6次举例a\w?* 从字符串中找到一个 ‘a’然后尽可能少地匹配其后跟随的单词字符。由于 \w*? 是非贪婪的在匹配时会优先选择“不匹配任何字符a.*?d虽然是非贪婪但它从匹配到a之后“扩展”到了第一个 b 出现的位置即从 a 到第一个 b 之间的内容匹配多个字符的重复()例子需要匹配ab组合字符出现的次数ab出现1次以上“或”运算:|要比配 a cat 或者 a dog正则表达式a (cat|dog)先匹配 a 和 空格后面中括号内容代表要么是cat要么是dog错误书写方法a cat|dog——匹配的是 a cat 或者 dog正确的书写方法(注括号必不可少)a (cat|dog)——匹配 a cat 或者 a dog字符类字符集合[]相匹配由abc这几个字母构成的单词正则表达式是[abc][]里的内容代表匹配的字符只能选自于他们[]里的字符是 或 的关系此外方括号[]里还可以指定范围:[a-z]——代表所有的小写英文字符;[a-zA-Z]——代表所有的英文字符;[a-zA-Z0-9]——代表所有的英文字符和数字;若在方括号[][ 之后也就是括号内加一个^脱字符:则代表要求匹配除 ^ 后面列出的字符例如[^a-z] —— 代表除小写字母以外的所有字符包括换行符正则表达式中已经准备了一些常用的自定义字符类型内置字符集(元字符)符号等效字符集作用\d[0-9]代表数字字符\w[0-9a-zA-Z_]代表单词字符英文数字及下划线\s[\t\n\v]代表空白符(包含Tab和换行符)\D[^0-9]代表非数字字符\W[^0-9a-zA-Z]代表非单词和数字字符\S[^\t\n\v]代表非空白字符.代表任意字符但不包括\n换行符\n匹配换行符\t匹配Tab建制表符\v匹配垂直制表符\b匹配单词边界特殊符号^ 和 $^ ——匹配行首(放在前)$——匹配行尾(放在后)例子^a 只会匹配行首的ac$ 只会匹配行尾的c1.1 贪婪模式贪婪匹配正则表达式一般会趋于最大长度来匹配有多少匹配多少非贪婪匹配匹配到满足结果就停止匹配非贪婪模式作用效果差异.*?可以匹配0个 或者 1个匹配项之后不再匹配非贪婪模式匹配因为.*?可以为0个所以满足匹配时 a 后可不跟字母贪婪模式匹配因为*可以为 0 或者 多次把尽可能多的字符囊括进来.?可以匹配 1个 有匹配项后不再匹配非贪婪模式匹配因为.?只能为 1次或2次尽可能少的匹配a.?b为匹配从a开始以b结束的字符串但其中至少有1个字符所以匹配的是abab和aab而不是ab贪婪模式因为必须为 1次或多次会尽可能多的匹配分组和引用****可以让上面的所有量词和效果作用于一组字符而非单个字符(abc){2}:可以匹配 abcabc[abc]{2}:可以匹配由a | b | c任意字符构成的2个字符()每一个括号可以将字符分成一个GroupGroup0通常代表整个字符串Group1代表第一个分组Python给予了正则表达式新的定义可以给Group命名语法(?Pname字符)Group 1的名字变为了Group year贪婪模式再讲解当我们要提取一串字符中有相同字符的第一组字符贪婪模式会将所有满足匹配项给出非贪婪模式只会提取第一个匹配项2.总结以下总结来自于总结