Python正则表达式

为什么使用正则表达式?

典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。
【传统的搜索主要针对静态文本,若搜索动态文本则困难】

用途:

测试字符串内的模式。

例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。

替换文本。

可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
基于模式匹配从字符串中提取子字符串。

可以查找文档内或输入域内特定的文本。

例如,您可能需要搜索整个网站,删除过时的材料,以及替换某些 HTML 格式标记。在这种情况下,可以使用正则表达式来确定在每个文件中是否出现该材料或该 HTML 格式标记。此过程将受影响的文件列表缩小到包含需要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料。最后,可以使用正则表达式来搜索和替换标记。

应用领域

目前,正则表达式已经在很多软件中得到广泛的应用,包括 *nix(Linux, Unix等)、HP 等操作系统,PHP、C#、Java 等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。

C# 正则表达式

在我们的 C# 教程中,C# 正则表达式 这一章节专门介绍了有关 C# 正则表达式的知识。

using System;
using System.Text.RegularExpressions;
 
class Program
{
   static void Main()
   {
       string input = "我买了3个苹果和4个香蕉";
       string pattern = @"\d+"; // 匹配一个或多个数字
 
       Regex regex = new Regex(pattern);
       MatchCollection matches = regex.Matches(input);
 
       foreach (Match match in matches)
       {
           Console.WriteLine("找到数字: " + match.Value);
       }
   }
}

Java 正则表达式

在我们的 Java 教程中,Java 正则表达式 这一章节专门介绍了有关 Java 正则表达式的知识。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Main {
   public static void main(String[] args) {
       Pattern pattern = Pattern.compile("\\d+"); // 匹配一个或多个数字
       Matcher matcher = pattern.matcher("我买了3个苹果和4个香蕉");
 
       while (matcher.find()) {
           System.out.println("找到数字: " + matcher.group());
       }
   }
}

JavaScript 正则表达式

在我们的 JavaScript 教程中,JavaScript RegExp 对象 这一章节专门介绍了有关 JavaScript 正则表达式的知识,同时我们还提供了完整的 JavaScript RegExp 对象参考手册。

let input = "我买了3个苹果和4个香蕉";
let pattern = /\d+/g; // g 标志表示全局搜索
 
let matches = input.match(pattern);
console.log(matches); // 输出: ["3", "4"]

Python 正则表达式

在我们的 Python 基础教程中,Python 正则表达式 这一章节专门介绍了有关 Python 正则表达式的知识。

import re
 
text = "我买了3个苹果和4个香蕉"
pattern = r"\d+"  # 在Python中使用原始字符串表示正则表达式
 
matches = re.findall(pattern, text)
print(matches)  # 输出: ['3', '4']

Ruby 正则表达式

在我们的 Ruby 教程中,Ruby 正则表达式 这一章节专门介绍了有关 Ruby 正则表达式的知识。

require 'regexp'
 
text = "我买了3个苹果和4个香蕉"
pattern = /\d+/
 
matches = text.scan(pattern)
puts matches.inspect # 输出: ["3", "4"]

Python中正则表达式的应用

在 Python 中,使用 re 模块来处理正则表达式。
模块提供了一系列函数和工具,用于在字符串中执行模式匹配、搜索和替换操作。
re模块使 Python 语言拥有完整的正则表达式功能。
re 模块提供的函数形式如下:

re func(pattern, string, flags=0)

三个参数说明:

pattern:模式,描述了需要匹配的字符串的规则。
string:要匹配的字符串。
fags :修饰符。

fags 修饰符说明:
re.IGNORECASEre.I– 忽略大小写。
re.MULTILINEre.M --多行模式,改变入和$的行为。
re.DOTALLre.S-使。匹配包括换行符在内的任意字符
re.VERBOSEre.X-忽略空格和注释,可以更清晰地组织复杂的正则表达式
re.ASCII --使 \w, , \b, \B, \d, \D, \s, \s 仅匹配 ASCII 字符。

示例:

1、re.search(pattern, string, flags=0)
在字符串中搜索匹配指定模式的第一个位置,返回一个匹配对象(match object),如果没有找到匹配,则返回 None.

import re
pattern=r'\d+' #匹配一个要客个数早
text = 'The price is $20.45
match =re.search(pattern, text)
if match:
	print("Match found:", match.group())
else:
	print("No match")

输出结果为:Match found: 20

说明:
re.search 在字符串中搜索匹配指走模式的第一个位置。
模式r'\d+'匹配一个或多个数字。
如果找到匹配,将返回一个匹配对象,可以通过.group() 方法获取匹配的字符串。

参考文档:https://www.runoob.com/regexp/regexp-wx-tutorial.html

相关推荐

  1. Python表达式

    2024-04-09 06:58:02       35 阅读
  2. Python 表达式

    2024-04-09 06:58:02       20 阅读
  3. python表达式

    2024-04-09 06:58:02       17 阅读
  4. Python表达式

    2024-04-09 06:58:02       12 阅读
  5. Python-表达式

    2024-04-09 06:58:02       11 阅读
  6. python 表达式

    2024-04-09 06:58:02       10 阅读
  7. python 表达式

    2024-04-09 06:58:02       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 06:58:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 06:58:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 06:58:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 06:58:02       18 阅读

热门阅读

  1. 服务器挖矿病毒查杀排查手册

    2024-04-09 06:58:02       14 阅读
  2. AcWing798. 差分矩阵

    2024-04-09 06:58:02       12 阅读
  3. 在 Visual Studio Code (VSCode) 中隐藏以 . 开头的文件

    2024-04-09 06:58:02       14 阅读
  4. 力扣经典150题第十题:跳跃游戏二

    2024-04-09 06:58:02       10 阅读
  5. FPN网络

    FPN网络

    2024-04-09 06:58:02      13 阅读
  6. 「PHP系列」PHP 函数详解

    2024-04-09 06:58:02       18 阅读
  7. TypeScript尚硅谷学习

    2024-04-09 06:58:02       14 阅读
  8. Yocto - 如何给配方文件添加源码patch

    2024-04-09 06:58:02       15 阅读
  9. 【分布式】MIT 6.824 Lab 2C实现细节分析

    2024-04-09 06:58:02       13 阅读