正则表达式捕获组(正则 捕获组)
## 正则表达式捕获组### 简介捕获组是正则表达式中非常强大的功能,允许你提取匹配字符串中的特定部分。它们通过使用括号 `()` 来定义,括号内的模式匹配到的内容会被捕获并存储起来,供后续使用。### 捕获组的作用1.
提取信息:
从文本中提取特定模式的子字符串。 2.
替换文本:
使用捕获组的内容替换匹配的文本。 3.
验证格式:
更精确地验证字符串是否符合特定格式。### 捕获组的类型1.
编号捕获组:
- 默认情况下,每个左括号 `(` 会创建一个新的编号捕获组,从 1 开始编号。- 可以使用 `\1`, `\2`, ... 来引用捕获到的内容。- 例如:正则表达式 `(\d{4})-(\d{2})-(\d{2})` 可以捕获日期中的年、月、日。 2.
命名捕获组:
- 语法: `(?
非捕获组:
- 语法: `(?:pattern)`- 用于分组和匹配模式,但不会捕获匹配的内容。- 提高效率:减少不必要的捕获,提升性能。- 例如:`(?:\d{4}-)?\d{2}-\d{2}` 可以匹配带或不带年份的日期。### 捕获组的应用#### 1. 提取信息```python import retext = "My phone number is 123-456-7890." match = re.search(r"(\d{3})-(\d{3})-(\d{4})", text)if match:area_code = match.group(1)print(f"Area code: {area_code}") # 输出 Area code: 123 ```#### 2. 替换文本```python import retext = "John Doe, Jane Doe" new_text = re.sub(r"(\w+)\s+(\w+)", r"\2 \1", text)print(f"Original text: {text}") # 输出 Original text: John Doe, Jane Doe print(f"New text: {new_text}") # 输出 New text: Doe John, Doe Jane ```#### 3. 验证格式```python import redef validate_date(date_string):pattern = r"^(?:19|20)\d{2}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$"match = re.match(pattern, date_string)return bool(match)print(validate_date("2023-04-10")) # 输出 True print(validate_date("2023-14-10")) # 输出 False ```### 总结捕获组是正则表达式中强大且灵活的功能,能够帮助你更有效地处理字符串。 了解不同类型的捕获组及其应用场景,可以让你在文本处理任务中游刃有余。
正则表达式捕获组
简介捕获组是正则表达式中非常强大的功能,允许你提取匹配字符串中的特定部分。它们通过使用括号 `()` 来定义,括号内的模式匹配到的内容会被捕获并存储起来,供后续使用。
捕获组的作用1. **提取信息:** 从文本中提取特定模式的子字符串。 2. **替换文本:** 使用捕获组的内容替换匹配的文本。 3. **验证格式:** 更精确地验证字符串是否符合特定格式。
捕获组的类型1. **编号捕获组:** - 默认情况下,每个左括号 `(` 会创建一个新的编号捕获组,从 1 开始编号。- 可以使用 `\1`, `\2`, ... 来引用捕获到的内容。- 例如:正则表达式 `(\d{4})-(\d{2})-(\d{2})` 可以捕获日期中的年、月、日。
2. **命名捕获组:** - 语法: `(?
捕获组的应用
1. 提取信息```python import retext = "My phone number is 123-456-7890." match = re.search(r"(\d{3})-(\d{3})-(\d{4})", text)if match:area_code = match.group(1)print(f"Area code: {area_code}")
输出 Area code: 123 ```
2. 替换文本```python import retext = "John Doe, Jane Doe" new_text = re.sub(r"(\w+)\s+(\w+)", r"\2 \1", text)print(f"Original text: {text}")
输出 Original text: John Doe, Jane Doe print(f"New text: {new_text}")
输出 New text: Doe John, Doe Jane ```
3. 验证格式```python import redef validate_date(date_string):pattern = r"^(?:19|20)\d{2}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$"match = re.match(pattern, date_string)return bool(match)print(validate_date("2023-04-10"))
输出 True print(validate_date("2023-14-10"))
输出 False ```
总结捕获组是正则表达式中强大且灵活的功能,能够帮助你更有效地处理字符串。 了解不同类型的捕获组及其应用场景,可以让你在文本处理任务中游刃有余。