正则表达式
发布时间:2020-12-14 06:19:09 所属栏目:百科 来源:网络整理
导读:正则表达式 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。 下图提供了正则表达式的简介写法: 1. 通配符 ?与 * ? 通配符匹配文件名中的 0 个或 1 个字符; 通配符匹配零个或多个字
正则表达式正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。 下图提供了正则表达式的简介写法:1. 通配符 ?与 *
ps: 使用 * 字符代替 ? 字符扩大了找到的文件的数量。 2. ^,+,$与.
例:^[0-9]+abc$就是匹配数字开头,abc结尾的字符串 var str = "123abc"; var patt1 = /^[0-9]+abc$/; document.write(str.match(patt1)); 例: import re key = r"ababbbbcadsdf" p1 = r"ab+" pattern1 = re.compile(p1) print pattern1.findall(key) 输出结果为: [‘ab‘,‘abbbb‘] 即:按顺序从左往右匹配,+是前面一个字符(b)匹配一次或者多次。 3. 匹配.本身~转义字符:这个符号通常用来把特殊的符号转成普通的。例: import re key = r"[email?protected]" p1 = r"[email?protected].edu.cn" pattern1 = re.compile(p1) print pattern1.findall(key) findall返回的是所有符合要求的元素列表,包括仅有一个元素时,它还是给你返回的列表。 输出结果为: [‘[email?protected]‘] 我们在.的前面加上了转义符,而是只匹配“.”的意思!4. *跟在其他符号后面表达可以匹配到它0次或多次例如:网页内遇到了链接,可能既有http://开头的,又有https://开头的,我们怎么处理? import re key = r"http://www.nsfbuhwe.com and https://www.auhfisna.com" p1 = r"https*://"#看那个*! pattern1 = re.compile(p1) print pattern1.findall(key) 输出结果为: [‘http://‘,‘https://‘] 5. []代表匹配里面的字符中的任意一个例如: import re key = r"lalala<heLLo>hello</HellO>heiheihei" p1 = r"<[Hh][Ee][Ll][Ll][Oo]>.+?</[Hh][Ee][Ll][Ll][Oo]>" pattern1 = re.compile(p1) print pattern1.findall(key) 输出结果为: [‘<heLLo>hello</HellO>‘] 6. [^]代表除了内部包含的字符以外都能匹配例:现在有cat,hat,mat,qat,想要匹配所有的: 则: import re key = r"mat cat hat qat" p1 = r"[a-z]*at" pattern1 = re.compile(p1) print pattern1.findall(key) 输出结果为: [‘mat‘,‘cat‘,‘hat‘,‘qat‘] 若上例重要匹配除qat以外的,则: import re key = r"mat cat hat qat" p1 = r"[^q]at"#这代表除了p以外都匹配 pattern1 = re.compile(p1) print pattern1.findall(key) 输出结果为: [‘mat‘,‘hat‘] 7. 贪婪模式例:我想匹配到@后面一直到“.”之间的,在这里是china 即@china. import re key = r"[email?protected]" p1 = r"@.+." pattern1 = re.compile(p1) print pattern1.findall(key) 但是结果却是这样: [‘@china.edu.‘]
8. 只要在“+”后面加一个“?”就变成了懒惰模式,匹配尽可能少的。import re key = r"[email?protected]" p1 = r"@.+?."#我想匹配到@后面一直到“.”之间的,在这里是hit pattern1 = re.compile(p1) print pattern1.findall(key) 此时输出结果为: [‘@china.‘] 小结先写到这里,后面在学习中遇到再补充进来。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容