Python正则表达式如何匹配子串


Python正则表达式有很多的时候需要我们进行子串的匹配,不单在进行替换的时候需要进行,在很多的地方都会用到这些代码。下面我们就来详细的学习如何用Python正则表达式获取自己想得到的匹配子串。

获取Python正则表达式所匹配的子串(Get the part of a string matched by the regex)

  1. regex=ur"..." #正则表达式  
  2. match = re.search(regex, subject)  
  3. if match:  
  4. result = match.group()  
  5. else:  
  6. result = "" 

获取捕获组所匹配的子串(Get the part of a string matched by a capturing group)

  1. regex=ur"..." #正则表达式  
  2. match = re.search(regex, subject)  
  3. if match:  
  4. result = match.group(1)  
  5. else:  
  6. result = "" 

获取有名组所匹配的子串(Get the part of a string matched by a named group)

  1. regex=ur"..." #正则表达式  
  2. match = re.search(regex, subject)  
  3. if match:  
  4. result = match.group("groupname")  
  5. else:  
  6. result = "" 

将字符串中所有匹配的子串放入数组中(Get an array of all regex matches in a string)

  1. reresult = re.findall(regex, subject) 

遍历所有匹配的子串(Iterate over all matches in a string)

  1. for match in re.finditer(r"<(.*?)\s*.*?/\1>", subject)  
  2. # match start: match.start()  
  3. # match end (exclusive): match.end()  
  4. # matched text: match.group() 

通过Python正则表达式 字符串创建一个正则表达式对象(Create an object to use the same regex for many operations)

  1. rereobj = re.compile(regex) 

用法1的Python正则表达式对象版本use regex object for if/else branch whether (part of) a string can be matched)

  1. rereobj = re.compile(regex)  
  2. if reobj.search(subject):  
  3. do_something()  
  4. else:  
  5. do_anotherthing() 

用法2的Python正则表达式对象版本use regex object for if/else branch whether a string can be matched entirely)

  1. rereobj = re.compile(r"\Z") #正则表达式末尾以\Z 结束  
  2. if reobj.match(subject):  
  3. do_something()  
  4. else:  
  5. do_anotherthing() 

以上就是对Python正则表达式在获取匹配子串应用的介绍。

评论关闭