返回

正则表达式的实例方法与属性

前端

正则表达式在Python中是作为re模块的一部分,使用re模块之前,需要先导入它:

import re

实例方法

  • match():从字符串的开头匹配一个模式。如果匹配,则返回一个Match对象,否则返回None。
  • search():在字符串中查找一个模式。如果找到,则返回第一个匹配项的Match对象,否则返回None。
  • findall():在字符串中查找所有匹配一个模式的子字符串。如果找到,则返回一个包含所有匹配项的列表,否则返回一个空列表。
  • finditer():在字符串中查找所有匹配一个模式的子字符串。如果找到,则返回一个迭代器,其中包含每个匹配项的Match对象,否则返回一个空迭代器。
  • sub():将字符串中的所有匹配子字符串替换为一个新的字符串。如果找到,则返回一个包含所有替换的字符串,否则返回一个空字符串。
  • subn():将字符串中的所有匹配子字符串替换为一个新的字符串,并返回一个元组,其中包含替换后的字符串和替换的次数。

属性

  • pattern:模式字符串。
  • flags:标志位,用于指定正则表达式匹配的选项。
  • groupindex:命名捕获组的索引映射。
  • re:正则表达式对象。

示例

  • 以下示例使用match()方法来匹配字符串"hello, world!"中的"hello"。如果匹配,则打印"匹配",否则打印"不匹配"。
import re

pattern = "hello"
string = "hello, world!"

match = re.match(pattern, string)

if match:
    print("匹配")
else:
    print("不匹配")
  • 以下示例使用search()方法来在字符串"hello, world!"中查找"world"。如果找到,则打印"匹配",否则打印"不匹配"。
import re

pattern = "world"
string = "hello, world!"

match = re.search(pattern, string)

if match:
    print("匹配")
else:
    print("不匹配")
  • 以下示例使用findall()方法来在字符串"hello, world!"中查找所有匹配"o"的子字符串。如果找到,则打印所有匹配项,否则打印"没有匹配项"。
import re

pattern = "o"
string = "hello, world!"

matches = re.findall(pattern, string)

if matches:
    for match in matches:
        print(match)
else:
    print("没有匹配项")
  • 以下示例使用finditer()方法来在字符串"hello, world!"中查找所有匹配"o"的子字符串。如果找到,则打印所有匹配项,否则打印"没有匹配项"。
import re

pattern = "o"
string = "hello, world!"

matches = re.finditer(pattern, string)

if matches:
    for match in matches:
        print(match.start(), match.end(), match.group())
else:
    print("没有匹配项")
  • 以下示例使用sub()方法来将字符串"hello, world!"中的所有匹配"o"的子字符串替换为"a"。如果找到,则打印替换后的字符串,否则打印"没有匹配项"。
import re

pattern = "o"
string = "hello, world!"

result = re.sub(pattern, "a", string)

print(result)
  • 以下示例使用subn()方法来将字符串"hello, world!"中的所有匹配"o"的子字符串替换为"a"。如果找到,则打印替换后的字符串和替换的次数,否则打印"没有匹配项"。
import re

pattern = "o"
string = "hello, world!"

result, count = re.subn(pattern, "a", string)

print(result, count)

总结

正则表达式是一个强大的工具,可用于字符串匹配、搜索和替换。它由一系列字符组成,用于要查找的模式。Python内置了正则表达式模块,可用于执行复杂而强大的文本搜索。本文介绍了正则表达式的一些实例方法和属性。