
import re
content = 'Hello 1234567 World_This is a Regex Demo'
result=re.match('^Hello\s(\d+)\sWorld',content)
print(result)
print(result.group())
print(result.group(1))
print(result.span())
re.match(pattern, string):从字符串开头开始匹配正则表达式,若开头不匹配则返回 None,匹配成功则返回 Match 对象。^:匹配字符串开头(re.match 本身已从开头匹配,此处可省略,但写出来更明确)。\s:匹配任意空白字符(空格、制表符等)。\d+:匹配 1 个或多个数字。():分组匹配,将括号内的内容作为一个分组,可通过 group(n) 提取。group():返回整个匹配的字符串(等同于 group(0))。group(1):返回第一个分组匹配的内容(若有多个分组,可依次用 group(2)、group(3) 提取)。span():返回匹配的起始和结束索引(元组形式)。import re
content = 'Hello 1234567 World_This is a Regex Demo'
result=re.match('^Hello.*Demo$',content)
print(result)
print(result.group())
print(result.span())
^Hello.*Demo$ 的含义:
^:匹配字符串的开头Hello:匹配字面量字符串 "Hello".*:* 表示匹配前面的字符(. 代表任意字符,除换行符)0 次或多次Demo$:$ 匹配字符串的结尾,这里匹配字面量 "Demo"import re
s = "Python is good, Python is powerful"
# 正则:匹配以Python开头,以is结尾的内容(非贪婪匹配)
pattern_lazy = r"Python.*?is"
result_lazy = re.search(pattern_lazy, s)
print("非贪婪匹配结果:", result_lazy.group())
print("非贪婪匹配结果:", result_lazy)

import re
s = "Python insert is good, Python is powerful"
# 正则:匹配以Python开头,以is结尾的内容(非贪婪匹配)
pattern_lazy = r"Python.*?is"
result_lazy = re.search(pattern_lazy, s)
print("非贪婪匹配结果:", result_lazy.group())
print("非贪婪匹配结果:", result_lazy)
在python 和is 之间增加了insert,结果如下:

import re
s = "Python insert is good, Python is powerful"
# 正则:匹配以Python开头,以is结尾的内容(非贪婪匹配)
pattern_lazy = r"Python.*is"
result_lazy = re.search(pattern_lazy, s)
print("非贪婪匹配结果:", result_lazy.group())
print("非贪婪匹配结果:", result_lazy)
将.*?更改为.*之后,运行结果如下:

.*正则表达式将所有可能的符合正则要求的范围全部包含了进来 !
