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

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

  Python正则表达式匹配字符串:1。使用[(。]这个正则表达式提取单个位置的字符串;2.使用[(?P…)]这个正则表达式[匹配一串连续的位置。

  相关免费学习推荐:python视频教程

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

  一、单个位置的字符串提取

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

  代码如下:

  进口re

  str=a123b

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

  输出[ 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)

  #输出[ 123 b456 ]1.2多行匹配

  如果你想匹配多行,那么你需要添加re。s和re。m马克。添加重复字符后,将匹配换行符,默认。将不匹配换行符。

  代码如下:

  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,$标志将匹配每一行,默认的和$将只匹配第一行。

  代码如下:

  str=a23b\na34b

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

  #输出[23]

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

  # Output [23 , 34 ]二、连续多个位置的字符串提取

  在这种情况下,我们可以使用(?Pname…)要提取的这个正则表达式。例如,如果我们有一个webserver的访问日志: 192 . 168 . 0 . 1 25/Oct/2012:14336046336034 get/API http/1.1 20044 3358abc.com/search Mozilla/5.0 pname expr)要提取,其中名称可以改为您为位置字符串命名的变量,expr可以改为常规提取位置。

  代码如下:

  进口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 :

  print : 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正则表达式如何匹配字符串的细节。更多信息请关注盛行IT软件开发工作室的其他相关文章!

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

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