最近在学习agent开发发现正则表达式很重要但是课内似乎从未提及遂记录。核心函数re.search(pattern, string)搜索第一个匹配的位置re.match(pattern, string)从开头匹配re.findall(pattern, string)找到所有匹配re.sub(pattern, replace, string)替换匹配的内容re.DOTALL让 . 能匹配换行符re.IGNORECASE忽略大小写re.MULTILINE^和$匹配每行的开头/结尾常用正则语法语法含义举例.任意字符除换行a.b可以匹配a1b、acb\w字母、数字、下划线\w可以匹配hello、var_1\d数字\d[3]可以匹配123\s空格、换行、tab\s可以匹配空格们[^…]排除…[^abc]匹配一个不是a、b、c的字符*前一个字符重复≥0次ab*c可以匹配ac、abc、abbc前一个字符重复≥1次ab*c可以匹配abc、abbc?前一个字符重复0或1次ab?c 匹配 ac、abc.*贪婪模式尽量多匹配略.*?非贪婪模式尽量少匹配略()捕获组(.)ab提取ab前的一个字符(?: )非捕获组只用来分组不提取(?:ab)可以匹配abab(?…)前瞻后面必须有…\d(?元)可以匹配5元中的5\Z字符串结尾.\Z匹配直到末尾实战re.search(r\d, “abc123”) → “123”re.match(r\d, “123abc”) → 匹配re.match(r\d, “abc123”) → 不匹配re.findall(r\d, “abc123”) → [‘1’,‘2’,‘3’]re.sub(r\d,“*”,“a1b2”) → “a*b*”re.search(rA(.*)B, “A123B456B”).group(1) → 123B456re.search(rA(.*?)B, “A123B456B”).group(1) → 123[^:] → 一连串不是冒号的字符