python3网络爬虫:正则表达式2(四)

举报
brucexiaogui 发表于 2021/12/29 23:48:57 2021/12/29
【摘要】 python3网络爬虫:正则表达式2(四)   '''元字符 . 匹配除换行符以外的所以字符 ^ 规定匹配模式必须出现在目标字符串的开头,例如:^hell hello hellboy $ 规定匹配模式必须出现在目标字符串的结尾,例如:ar$ car bar\ 1、转义字符,讲一个普通的字符变成特殊字符...

python3网络爬虫:正则表达式2(四)

 


  
  1. '''
  2. 元字符
  3.  . 匹配除换行符以外的所以字符
  4.  ^ 规定匹配模式必须出现在目标字符串的开头,例如:^hell hello hellboy
  5.  $ 规定匹配模式必须出现在目标字符串的结尾,例如:ar$ car bar
  6. \ 1、转义字符,讲一个普通的字符变成特殊字符,eg:\d表示匹配十进制数字
  7. 2、解除元字符的特殊功能,eg:\.表示匹配点号本身
  8. 3、引用序号对应的子组所匹配的字符串
  9. | 管道符号,A和B是任意的RE,那么A|B就是匹配A或者B的一个新的RE。
  10. [...] 字符类,匹配所包含的任意一个字符。除了下面这几种特殊符号,其他的都被当做原始字符匹配。
  11. 1、 连字符- 如果出现在字符创中间表示字符范围描述。
  12. 2、特殊祖父仅有反斜线\ 保持特殊含义,其他*、+、? 等,当做普通字符
  13. 3、脱字符 ^ 出现在首位则表示匹配不包含其中的任意字符,出现在字符其他位置仅表示普通字符
  14. {M,N} M和N均为非负整数,其中M<=N,表示前边的RE匹配M~N次
  15. 1、{M,}表示至少匹配M次
  16. 2、{,N}等价于{0,N}
  17. 3、{N}表示需要匹配N次
  18. * 匹配前面子表达式零次或多次
  19. + 匹配前面子表达式一次或多次
  20. ? 匹配前面子表达式零次或一次
  21. 贪婪模式 *,+,?都会尽可能多的匹配符合规则的字符串
  22. 非贪婪模式 *?,+?,?? 表示启用对应的非贪婪模式
  23. '''
  24. import re
  25. #(1) |或表示匹配A和B任意一个
  26. z = re.search(r'I love [i|you]','I love i')
  27. print(z) # match='I love i'>
  28. z = re.search(r'I love [i|you]','I love you')
  29. print(z) #match='I love y'>
  30. #(2) ^匹配某个字符串的开始位置
  31. z = re.search(r'^I love','I love')
  32. print(z) #match='I love'>
  33. #(3)$ 匹配字符结束位置
  34. z = re.search(r'love$','I love')
  35. print(z)
  36. # 字符类 []
  37. #(4)[.] 点在字符类中表示原始含义点来匹配。如果不是在字符类中则表示匹配任意的字符
  38. z = re.search(r'[.]','I love . YOU')
  39. print(z) #match='.'>
  40. #(5)[-]连字符,放在字符中间表示范围。
  41. # findall()方法打印出匹配到的所有字符
  42. z = re.findall(r'[a-z]','I love you')
  43. print(z) # ['l', 'o', 'v', 'e', 'y', 'o', 'u']
  44. #(6)[\]
  45. z = re.findall(r'[\n]','I love you\n')
  46. print(z) #['\n']
  47. #(7)脱字符 ^ 出现在首位则表示匹配不包含其中的任意字符
  48. z = re.findall(r'[^a-z]','I Love You')
  49. print(z)
  50. #{}匹配次数
  51. z = re.search(r'Iloveyou{3}','Iloveyouuuuu') #匹配3次u
  52. print(z) #match='Iloveyouuu'>
  53. z = re.search(r'(Iloveyou){3}','IloveyouIloveyouIloveyou') #匹配3次Iloveyou
  54. print(z) #match='IloveyouIloveyouIloveyou'>
  55. z = re.search(r'(Iloveyou){1,3}','IloveyouIloveyouIloveyou') #匹配1~3次Iloveyou
  56. print(z) #match='IloveyouIloveyouIloveyou'>
  57. # 贪婪模式
  58. s = '<html><title> I love YOU</title></html>'
  59. z = re.search('<.+>',s)
  60. print(z) # match='<html><title> I love YOU</title></html>'>
  61. #非贪婪模式
  62. z = re.search('<.+?>',s)
  63. print(z) #match='<html>'>

 

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/80495359

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。