python正则表达式快速提取指定范围的信息

话不多说,直接上代码:

import re
# 要匹配的字符串对象
str_txt = """
 if (!mobileVisit) {
 googletag.defineSlot "div-gpt-ad-15390086850-0").addService(googletag.pubads());
                 }
          """
# print(str_txt)
comment = re.compile(r'div-gpt-ad-(.*?)-0',re.S)
comment1 = comment.findall(str_txt)
print(comment1[0])

若想获取str_txt字符串里面的号码:15390086850

  1. 使用re正则表达式中的compile函数,在匹配内容的括号中写**(.*?)**
  2. 其中.*?代表非贪心算法,表示精准的配对
  3. 在.*?的外面加个括号表示获取括号之间的信息
  4. 在(.*?)两边加上原文本中要匹配信息两旁的信息,
  5. 例如要想获得字符串“abcdefg”中的cd,就要在(.*?)里面分别加上ab和efg
  6. compile中使用的第二个参数是re.S,表示正则表达式会将这个字符串作为一个整体,包括”\n“,如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始,不会跨行
  7. compile()函数返回的是一个匹配对象,单独使用无意义,需要和**findall()**函数搭配使用,返回的是一个列表

最后输出结果:

15390086850

你可能感兴趣的:(python正则表达式快速提取指定范围的信息)