、'西瓜有5个,杏有20个,梨有4个,香蕉有3个,猕猴桃有6个,桃子有21个,火龙果有7个'
原来想要解决一下,在字符串里边儿匹配住数字,然后再求加和,但是后来发现,如果一个字符一个字符的截取不太行。就比如说20就会被截取成二和零。这就麻烦了,所以说需要进行匹配。然后再学习寻找正则表达式的时候,找了很多资料都不全乎。最终发现了这个深度好文。
直接看原文!!!!!!!!!!!!!!!!!!!!
原文链接:
python——正则表达式(re模块)详解_guo_qingxia的博客-CSDN博客_reread在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re。正则表达式的大致匹配过程是:1.依次拿出表达式和文本中的字符比较,2.如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。3.如果表达式中有量词或边界,这个过程会稍微有一些不同。r:在带有 'r' 前缀的字符串字面值中,反斜杠不必做任何特殊处理。 因此 r"\n" 表示包含 '\' 和 'n' 两个字符的字符串,而 "\n" 则表示只包含一个换行符的字符串。re模块的https://blog.csdn.net/guo_qingxia/article/details/113979135?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163284057816780264056610%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163284057816780264056610&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-113979135.first_rank_v2_pc_rank_v29&utm_term=re&spm=1018.2226.3001.4187
. 是任意字符 可以匹配任何单个字符,
例子:正则表达式r.t 可以匹配这些字符串:rat、rut、r t,但是不匹配root。
.*? 表示匹配任意字符到下一个符合条件的字符
例子:正则表达式a.*?xxx 可以匹配 abxxx axxxxx abbbbbxxx
扩展:
* 匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。? 匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。.*是指任何字符0个或多个,.?是指任何字符0个或1个.
.*具有贪婪的性质,首先匹配到不能匹配为止,根据后面的正则表达式,会进行回溯。.*?则相反,一个匹配以后,就往下进行,所以不会进行回溯,具有最小匹配的性质。
?表示非贪婪模式,即为匹配最近字符 如果不加?就是贪婪模式a.*bc 可以匹配 abcbcbc
原文链接:
正则里的(.*?)是什么意思_Simple的博客-CSDN博客. 是任意字符 可以匹配任何单个字符,例子:正则表达式r.t 可以匹配这些字符串:rat、rut、r t,但是不匹配root。.*? 表示匹配任意字符到下一个符合条件的字符例子:正则表达式a.*?xxx可以匹配abxxx axxxxx abbbbbxxx扩展:* 匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。? 匹配...https://blog.csdn.net/qq_42804678/article/details/91346116?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163455770416780261998122%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163455770416780261998122&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-91346116.first_rank_v2_pc_rank_v29&utm_term=%28.*%3F%29&spm=1018.2226.3001.4187