比如要匹配文件编码方式“gbk”<meta charset="gbk">
如果用re.search(r'<meta.*?charset=(.*?).*>',str,re.S)
就无法匹配到,
只能用re.search(r'<meta.*?charset=(.*?).?>',str,re.S)
才可以匹配到,
难道*在这里就不是匹配前一个字符0次或无限次的意思了?
比如要匹配文件编码方式“gbk”<meta charset="gbk">
如果用re.search(r'<meta.*?charset=(.*?).*>',str,re.S)
就无法匹配到,
只能用re.search(r'<meta.*?charset=(.*?).?>',str,re.S)
才可以匹配到,
难道*在这里就不是匹配前一个字符0次或无限次的意思了?
8 回答1.2k 阅读
3 回答1.1k 阅读✓ 已解决
4 回答771 阅读✓ 已解决
4 回答736 阅读
3 回答1.1k 阅读✓ 已解决
4 回答736 阅读✓ 已解决
2 回答735 阅读✓ 已解决
无论是
(.*?).*
还是(.*?).?
两个连续的“匹配不定长度任意字符” 不管是不是work都不应该这么用,完全没有表达出规则的涵义放在这个具体的meta例子里,可以考虑
<meta.*?charset=(['"a-zA-Z-_]*)[^>]*>