python 正则 匹配任意字符串,python正则匹配符号_1

  python 正则 匹配任意字符串,python正则匹配符号

  

  如何用python正则表达式匹配字符串?

  用python正则表达式匹配字符串的方法:

  1.单个位置的字符串匹配

  在这种情况下,我们可以使用这个(。)正则表达式来提取。例如,一个字符串 a123b ,如果我们想提取ab之间的值123,我们可以使用findall和正则表达式,这将返回一个包含所有匹配的列表,代码如下3360

  进口re

  str=a123b

  print re.findall(ra。)b ,str)#

  Output [123]1.1贪婪和非贪婪匹配

  如果我们有一个字符串“a123b456b”,如果我们想匹配A和最后一个B之间的所有值,而不是A和第一个出现的B之间的值,可以用吗?控制常规的贪婪和非贪婪匹配。代码如下:

  进口re

  str=a123b456b

  print re.findall(ra。)b ,str)

  # Output [123]#?控件只匹配0或1,因此只输出最接近的B之间的匹配。

  print re.findall(ra。)b ,str)

  # Output [123b456]

  print re.findall(ra。*)b ,str)

  # Output [123b456]1.2多行匹配

  如果要匹配多行,需要加re。s和re。m标志。加了re之后。s,将匹配换行符,默认情况下。将不匹配换行符。代码如下:3360

  str=a23b\na34b

  re.findall(ra(\d )b. a(\d )b ,str)

  #输出[]

  #因为您无法处理str中间的\n断行情况

  re.findall(ra(\d )b. a(\d )b ,str,re。s)

  #s带有re的输出[(23 , 34)]m,$标志将匹配每一行,默认的和$将只匹配第一行。代码如下:3360

  str=a23b\na34b

  re.findall(r^a(\d)海峡

  #输出[23]

  re.findall(r^a(\d )b ,str,re。m)

  # Output [23 , 34]2。连续多个位置的字符串匹配

  在这种情况下,我们可以使用(?Pname…)要提取的这个正则表达式。比如我们有一行webserver的访问日志: 192 . 168 . 0 . 1 25/oct/2012:14336046336034 get/API http/1.1 200 44 3358abc.com/Pnameexpr)要提取,其中name可以改成你为location字符串命名的变量,expr可以改成常规的提取位置。代码如下:3360

  进口re

  line= 192 . 168 . 0 . 1 25/Oct/2012:143:46:34 GET/API HTTP/1.1 200 44 http://ABC.com/search

  Mozilla/5.0

  re.compile(^(?Premote_ip[^ ]*)(?pdate[^]*)’(?Prequest[^]*)

  (?Pstatus[^ ]*)(?psize[^]*)’(?Preferrer[^]*)的(?Puser_agent[^]*))

  regMatch=reg.match(line)

  linebits=regMatch.groupdict()

  打印行位

  对于linebits.items()中的k,v :

  打印‘:’v输出的结果是:

  状态: 200

  推荐人:

  请求:获取/api HTTP/1.1

  user_agent: Mozilla/5.0

  日期: 2012年10月25日33:14:463:34尺寸: 44

  Remote_ip: 192.168.0.1推荐教程:《python视频教程》以上是如何用python正则表达式匹配字符串?更多详情请关注盛行IT软件开发工作室的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: