正则表达式超详细版

正则表达式——详解 正则表达式(Regular Expression,通常简写为 regex、regexp 或 RE)是一种强大的,用于描述一组字符串的模式。,几乎所有现代编程语言都支持正则表达式的使用,包括 Java 和 JavaScript (Vue.js 应用中的 JavaScript 代码)。在实际开发中,。 阅读详情
AI摘要

本文系统讲解正则表达式的基本语法、核心特性及实际应用,涵盖元字符、分组捕获、零宽断言、模式修饰符等内容,并提供邮箱验证、手机号匹配、HTML链接提取、日志解析等典型场景的代码示例,同时指出常见陷阱与性能优化策略。

一、基本概念

正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换字符串中的特定模式。它通过一系列预定义的语法规则,描述字符串的结构特征,广泛应用于数据验证、文本解析、日志分析、搜索引擎等领域。

二、基础语法(核心元字符与规则)

正则表达式的语法由「普通字符」和「元字符」组成,元字符是具有特殊含义的符号,掌握它们是使用正则的基础。

1. 普通字符

  • 直接匹配自身,无特殊含义(如 a、b、1、 空格等)。
  • 示例:abc 匹配字符串 "abc",123 匹配 "123"。

2. 核心元字符(按功能分类)

元字符功能说明示例
.匹配任意单个字符(默认不匹配换行符 \n,部分语言可通过修饰符改变)。a.b 匹配 "axb"、"a1b"、"a#b"(不匹配 "a\nb")。
^匹配字符串开头(多行模式下匹配每行开头)。^hello 匹配 "hello world"(开头是 hello),不匹配 "xhello"。
$匹配字符串结尾(多行模式下匹配每行结尾)。world$ 匹配 "hello world"(结尾是 world),不匹配 "worldx"。
*匹配前面的元素 0 次或多次(贪婪匹配:尽可能多匹配)。ab* 匹配 "a"、"ab"、"abb"、"abbb"。
+匹配前面的元素 1 次或多次(贪婪匹配)。ab+ 匹配 "ab"、"abb"(不匹配 "a")。
?匹配前面的元素 0 次或 1 次(可选匹配)。ab? 匹配 "a"、"ab"(不匹配 "abb")。
{n}匹配前面的元素 恰好 n 次(n 为非负整数)。a{3} 匹配 "aaa"(不匹配 "aa"、"aaaa")。
{n,}匹配前面的元素 至少 n 次(贪婪匹配)。a{2,} 匹配 "aa"、"aaa"、"aaaa"。
{n,m}匹配前面的元素 n 到 m 次(n ≤ m,贪婪匹配)。a{2,3} 匹配 "aa"、"aaa"(不匹配 "a"、"aaaa")。
|逻辑「或」,匹配左边或右边的模式(优先级最低,需用括号提升优先级)。ab|cd 匹配 "ab" 或 "cd";a(b|c)d 匹配 "abd"、"acd"。
()分组:将多个字符视为一个整体,同时捕获匹配结果(可通过反向引用使用)。(ab)+ 匹配 "ab"、"abab";(\w+)\s+(\w+) 捕获两个单词(如 "hello world")。
\转义字符:取消元字符的特殊含义,或表示预定义字符类(如 \d、\s)。a\.b 匹配 "a.b"(. 作为普通字符);\* 匹配 "*"。
[]字符类:匹配括号内任意一个字符(支持范围表示,^ 表示否定)。[abc] 匹配 "a"、"b"、"c";[^abc] 匹配非 a/b/c 的字符。
[-]字符类内的范围符:表示连续字符集(如字母、数字范围)。[a-z] 匹配小写字母;[0-9] 匹配数字;[a-zA-Z0-9] 匹配字母数字。

3. 预定义字符类(简化写法)

为了简化常见的字符匹配,正则提供了预定义的字符类(部分需结合修饰符使用):

预定义类等价于功能说明
\d[0-9]匹配任意数字(digit)。
\D[^0-9]匹配任意非数字。
\w[a-zA-Z0-9_]匹配字母、数字、下划线(word 字符,注意不包含空格和特殊字符)。
\W[^a-zA-Z0-9_]匹配非字母、数字、下划线。
\s[ \t\n\r\f\v]匹配任意空白字符(space:空格、制表符 \t、换行符 \n 等)。
\S[^ \t\n\r\f\v]匹配任意非空白字符。
\b-匹配单词边界(单词与非单词的分隔处,如 "hello world" 中的空格两侧)。
\B-匹配非单词边界(如 "helloworld" 中两个单词的连接处)。
\n-匹配换行符(部分语言支持 \r\n 匹配 Windows 换行)。
\t-匹配制表符。

示例:

  • \d{3}-\d{4} 匹配 "123-4567"(3 位数字 + 横杠 + 4 位数字)。
  • \w+@\w+\.\w+ 匹配简单邮箱(如 "test123@example.com")。
  • \bhello\b 匹配独立的单词 "hello"(不匹配 "helloworld" 或 "xhello")。

三、核心特性(进阶用法)

掌握基础语法后,需理解正则的核心特性(贪婪 / 非贪婪、分组 / 捕获、断言等),才能应对复杂场景。

1. 贪婪匹配与非贪婪匹配

默认情况下,正则的量词(*、+、?、{n,m})是「贪婪的」—— 尽可能匹配更多字符。在量词后加 ? 可变为「非贪婪」—— 尽可能匹配更少字符。

模式类型示例(匹配字符串 "aabbaabcc")
a.*b贪婪匹配 "aabbaab"(从第一个 a 到最后一个 b)。
a.*?b非贪婪匹配 "aab"(从第一个 a 到最近的 b)。
a.+c贪婪匹配 "aabbaabcc"(从第一个 a 到最后一个 c)。
a.+?c非贪婪匹配 "aabbaabc"(从第一个 a 到最近的 c)。

2. 分组与捕获

() 不仅能将模式分组(视为整体),还能「捕获」匹配到的内容,后续可通过「反向引用」或编程接口获取。

(1)普通捕获组
  • 语法:(pattern)
  • 捕获的内容按分组顺序编号(从 1 开始),可通过 \1、\2...(正则内)或编程变量(如 Python 的 group(1))引用。

示例:

  • 匹配重复单词:(\w+)\s+\1解释:(\w+) 捕获第一个单词,\s+ 匹配空格,\1 引用第一个捕获的单词,可匹配 "hello hello"、"test test"。
  • 提取日期中的年、月、日:(\d{4})-(\d{2})-(\d{2})匹配 "2025-11-21" 后,捕获组 1 = "2025",组 2 = "11",组 3 = "21"。
(2)非捕获组

若只需分组(不捕获结果),用 (?:pattern),可提升性能(避免不必要的内存占用)。

示例:

  • (?:ab)+ 匹配 "ab"、"abab"(不捕获 "ab",仅作为整体匹配)。
(3)命名捕获组

为捕获组命名,便于后续引用(避免按编号混淆),语法:(?<name>pattern)(部分语言支持,如 Python、JavaScript、Java)。

示例:

  • 提取日期:(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})匹配后可通过名称引用(如 Python 的 group("year")),更直观。

3. 零宽断言(Lookaround)

零宽断言是「匹配位置」的模式,不消耗字符(仅判断当前位置前后是否满足条件),分为「先行断言」和「后行断言」。

(1)先行断言(Lookahead)

判断当前位置后面是否满足条件,语法:

  • 正向先行:(?=pattern) → 后面必须是 pattern。
  • 负向先行:(?!pattern) → 后面必须不是 pattern。

示例:

  • 匹配「后面是数字的字母」:[a-zA-Z](?=\d)匹配 "a1" 中的 "a"、"b23" 中的 "b"(后面必须跟数字)。
  • 匹配「后面不是数字的字母」:[a-zA-Z](?!\d)匹配 "ab" 中的 "a"、"c#" 中的 "c"(后面不是数字)。
  • 验证密码(必须包含数字):^(?=.*\d).{6,12}$解释:^ 开头,(?=.*\d) 后面必须有至少一个数字,.{6,12} 匹配 6-12 个任意字符,$ 结尾。
(2)后行断言(Lookbehind)

判断当前位置前面是否满足条件,语法:

  • 正向后行:(?<=pattern) → 前面必须是 pattern。
  • 负向后行:(?<!pattern) → 前面必须不是 pattern。

示例:

  • 匹配「前面是数字的字母」:(?<=\d)[a-zA-Z]匹配 "1a" 中的 "a"、"23b" 中的 "b"(前面是数字)。
  • 匹配「前面不是数字的字母」:(?<!\d)[a-zA-Z]匹配 "xa" 中的 "a"、"#b" 中的 "b"(前面不是数字)。
  • 提取「$ 后面的数字」:(?<=\$)\d+匹配"$123" 中的 "123"、"price: $45"中的"45"\(前面是 $)。

4. 模式修饰符(Flags)

修饰符用于改变正则的匹配行为(如忽略大小写、多行匹配等),不同语言的表示方式不同(如 Python 用 re.IGNORECASE,JavaScript 用 /pattern/gi)。

常见修饰符:

修饰符作用说明
i忽略大小写(case-insensitive):a 可匹配 A,B 可匹配 b。
g全局匹配(global):找到所有匹配项,而非第一个(部分语言默认全局)。
m多行模式(multi-line):^ 匹配每行开头,$ 匹配每行结尾(默认仅匹配整体开头 / 结尾)。
s单行模式(single-line):. 匹配所有字符(包括换行符 \n,默认不匹配)。
uUnicode 模式:支持 Unicode 字符(如 \p{L} 匹配任意语言的字母)。
x忽略空格和注释(extended):便于编写复杂正则(用 # 写注释)。

示例:

  • 忽略大小写匹配:/hello/i 匹配 "Hello"、"HELLO"、"hello"。
  • 多行模式匹配:/^hello/m 匹配 "hello\nworld\nhello" 中的两个 "hello"(每行开头)。
  • 单行模式匹配:/a.b/s 匹配 "a\nb"(. 匹配换行符)。

四、常见应用场景(实战示例)

正则的核心价值是解决文本处理问题,以下是高频场景的实战示例:

1. 数据验证

示例 1:验证邮箱地址
using System;
using System.Text.RegularExpressions;

public class EmailValidator
{
    public static bool IsValidEmail(string email)
    {
        // 正则表达式:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
        string pattern = @"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$";
        return Regex.IsMatch(email, pattern);
    }

    public static void Main()
    {
        string[] emails = {
            "test@example.com",
            "user.name+tag@example.co.uk",
            "invalid-email",
            "another.invalid@.com"
        };

        foreach (var email in emails)
        {
            Console.WriteLine($"{email}: {IsValidEmail(email)}");
        }
    }
}

输出:

test@example.com: True
user.name+tag@example.co.uk: True
invalid-email: False
another.invalid@.com: False

示例 2:验证手机号(中国大陆)
public class PhoneValidator
{
    public static bool IsValidPhone(string phone)
    {
        // 正则表达式:^1[3-9]\d{9}$
        string pattern = @"^1[3-9]\d{9}$";
        return Regex.IsMatch(phone, pattern);
    }

    public static void Main()
    {
        string[] phones = {
            "13812345678",
            "19987654321",
            "1234567890",
            "138123456789"
        };

        foreach (var phone in phones)
        {
            Console.WriteLine($"{phone}: {IsValidPhone(phone)}");
        }
    }
}

2. 文本提取

示例 3:从 HTML 中提取链接
using System;
using System.Text.RegularExpressions;

class LinkExtractor
{
    static void Main()
    {
        string html = @"
            <a href=""https://www.example.com"">Example</a>
            <a href=""https://www.google.com"">Google</a>
            <img src=""image.jpg"">
        ";

        // 正则表达式:<a\s+href=""([^""]*)""
        string pattern = @"<a\s+href=""([^""]*)""";
        MatchCollection matches = Regex.Matches(html, pattern);

        foreach (Match match in matches)
        {
            Console.WriteLine(match.Groups[1].Value);
        }
    }
}

输出:

https://www.example.com
https://www.google.com

示例 4:提取字符串中的所有数字
class NumberExtractor
{
    static void Main()
    {
        string input = "订单号:20230518001,金额:99.9元,数量:10";
        string pattern = @"\d+\.?\d*"; // 匹配整数或小数

        MatchCollection matches = Regex.Matches(input, pattern);
        foreach (Match match in matches)
        {
            Console.WriteLine(match.Value);
        }
    }
}

输出:

20230518001
99.9
10

3. 文本替换与格式化

示例 5:替换字符串中的敏感信息
class TextReplacer
{
    static void Main()
    {
        string input = "手机号:15112347676,身份证号:410123194910011234";
        
        // 替换手机号中间4位为****
        string phonePattern = @"(1[3-9])\d{4}(\d{4})";
        string result = Regex.Replace(input, phonePattern, "$1****$2");

        // 替换身份证号中间8位为********
        string idPattern = @"(^\d{6}|\d{8})(\d{4}$)";
        result = Regex.Replace(result, idPattern, "$1********$2");

        Console.WriteLine(result);
    }
}

输出:

手机号:151****7676,身份证号:410123********1234

示例 6:格式化日期(MM/DD/YYYY → YYYY-MM-DD)
class DateFormatter
{
    static void Main()
    {
        string input = "Today is 11/21/2025";
        string pattern = @"\b(\d{2})/(\d{2})/(\d{4})\b";
        
        // 替换为 YYYY-MM-DD
        string result = Regex.Replace(input, pattern, "$3-$1-$2");
        Console.WriteLine(result);
    }
}

输出:

Today is 2025-11-21

4. 高级应用:正则表达式分组与命名捕获

示例 7:解析日志文件

假设日志格式为:[2025-11-21 14:30:00] [INFO] User 'admin' logged in.

class LogParser
{
    static void Main()
    {
        string log = "[2025-11-21 14:30:00] [INFO] User 'admin' logged in.";
        
        string pattern = @"\[(.*?)\] \[(.*?)\] (.*)";
        Match match = Regex.Match(log, pattern);

        if (match.Success)
        {
            string timestamp = match.Groups[1].Value;
            string level = match.Groups[2].Value;
            string message = match.Groups[3].Value;
            
            Console.WriteLine($"时间:{timestamp}\n级别:{level}\n内容:{message}");
        }
    }
}

输出:

时间:2025-11-21 14:30:00
级别:INFO
内容:User 'admin' logged in.

示例 8:使用命名捕获组
class NamedGroupExample
{
    static void Main()
    {
        string input = "Name: John, Age: 30, Email: john@example.com";
        
        string pattern = @"Name: (?<name>\w+), Age: (?<age>\d+), Email: (?<email>[^,]+)";
        Match match = Regex.Match(input, pattern);

        if (match.Success)
        {
            Console.WriteLine($"姓名:{match.Groups["name"].Value}");
            Console.WriteLine($"年龄:{match.Groups["age"].Value}");
            Console.WriteLine($"邮箱:{match.Groups["email"].Value}");
        }
    }
}

五、注意事项与性能优化

1. 注意事项

  • 转义问题:不同语言中,正则的转义规则不同(如 Python 字符串中 \ 需转义为 \\,JavaScript 中直接写 \)。
  • 部分匹配 vs 完全匹配:验证格式时必须加 ^ 和 $(如手机号 1[3-9]\d{9} 会匹配 "a13812345678b",加 ^$ 才会完全匹配)。
  • 换行符处理:默认 . 不匹配 \n,需用 (?s) 修饰符或 [\s\S](匹配所有字符)。
  • Unicode 支持:处理多语言文本时,需开启 Unicode 模式(如 \p{L} 匹配任意语言字母,而非仅 [a-zA-Z])。

2. 性能优化

复杂正则可能导致回溯过多,影响性能,需注意:

  • 避免嵌套量词(如 (a*)*),容易引发回溯爆炸。
  • 用具体字符类代替 .(如匹配数字用 \d 而非 .,减少不必要的匹配)。
  • 优先使用非贪婪匹配(.*?)避免过度匹配,但不要滥用(非贪婪也可能增加回溯)。
  • 用原子组 (?>pattern) 避免回溯(原子组匹配后不可回溯,适合确定的模式)。
  • 拆分复杂正则(如长正则拆分为多个简单正则,分步处理)。

六、常见正则表达式示例(直接复用)

1. 验证类

场景正则表达式(C# 字符串需转义,或用 @ 逐字字符串)
手机号(中国大陆)^1[3-9]\d{9}$
邮箱^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
身份证号(18 位)^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}([0-9]|X|x)$
URL(http/https)^https?://[^\s]+$
日期(yyyy-MM-dd)^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
密码(8-20 位,含大小写字母、数字、特殊字符)^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{8,20}$

2. 提取类

场景正则表达式
提取所有数字\d+
提取所有链接https?://[^\s]+
提取 HTML 标签内容(如 <title>xxx</title>)<title>(.*?)</title>
提取邮箱地址[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

3. 替换类

场景正则表达式
去除所有空格\s+
格式化手机号(13812345678 → 138-1234-5678)(\d{3})(\d{4})(\d{4})
替换 HTML 标签(去除所有标签)<[^>]+>
敏感词替换(“垃圾”“废物” 替换为 “***”)(垃圾|废物)

希望对大家有所帮助。感谢大家的关注和点赞。

超详细:正则表达式从入门到入门 本文章首发于公众号Python for Finance链接:https://mp.weixin.qq.com/s/boLdKv1L31377dLOKQ6irw正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 阅读详情

相关推荐

正则表达式:从入门到实战的全面指南

正则表达式是由普通字符(例如字母、数字、标点符号等)和特殊字符(也称为元字符,Meta Characters)组成的字符串模式,用于描述一类字符串的共同特征。它就像是一种特殊的 “语言”,通过特定的组合方式来表达对字符串的匹配规则。​正则表达式是一种功能强大且用途广泛的文本处理工具,掌握其基本语法和应用技巧对于开发者来说至关重要。本文从正则表达式的基础概念入手,介绍了普通字符、元字符、匹配模式等核心内容,并通过丰富的实例演示了其在数据验证、文本搜索与替换、信息提取等场景中的应用。

2201_75786273的博客 8029

正则表达式(全)

通过上面几个简单的示例,可以了解到常见的基础正则表达式的元字符主要包括以下几个^ 匹配输入字符串的开始位置。除非在方括号表达式中使用,表示不包含该字符集合。要匹配”^”字符本身,请使用"\^"$ 匹配输入字符串的结尾位置。如果设置了RegExp对象的 Multiline属性,则"$”也匹配'\n'或'\r’,。要匹配”$"字符本身,请使用”\$". 匹配除"\r\n"之外的任何单个字符\ 反斜杠,又叫转义字符,去除其后紧跟的元字符或通配符的特殊意义* 匹配前面的子表达式零次或多次。...

a_b_e_l_的博客 24万+

【Python实用教学】——正则表达式(超详细版)

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(视则)的文本。(1)测试字符串的某个模式,即数据有效性验证(查找)(2)实现按照某种规则替换文本(3)根据模式匹配从字符串中提取一个子字符串(爬虫)原子(普通字符,如英文字符)、元字符(有特殊功能的字符)、以及模式修正字符组成。注意:一个正则表达式中至少包含一个原子。RegexBuddy。

xiaolinyui的博客 1481

最全常用正则表达式大全

一、校验数字的表达式 1. 数字:^[0-9]*$ 2. n位的数字:^\d{n}$ 3. 至少n位的数字:^\d{n,}$ 4. m-n位的数字:^\d{m,n}$ 5. 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6. 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7. 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8. 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9. 有两

ligl的博客 11万+

正则表达式超详细教程

正则表达式(Regular Expression,简称。

z17826856787的博客 912

均值回归 高频交易_基于布林带的均值回归交易策略

BOLL指标是美国股市分析家约翰·布林根据统计学中的标准差原理设计出来的一种非常简单实用的技术分析指标。一般而言,股价的运动总是围绕某一价值中枢(如均线、成本线等)在一定的范围内变动,布林线指标正是在上述条件的基础上,引进了“股价通道”的概念,其认为股价通道的宽窄随着股价波动幅度的大小而变化,而且股价通道又具有变异性,它会随着股价的变化而自动调整。由于之前大部分交易策略都是选股或者趋势追踪的择时,...

weixin_42528534的博客 1458

JS正则表达式(超详细整理版)

正则表达式 创建正则表达式 利用RegExp对象创建 var reg = new RegExp(/123/); console.log(reg) // /123/ 字面量创建 var reg = /123/; console.log(reg) // /123/ 正则.exec( str ) 从字符串里获取符合正则表达式的一部分片段 => 返回值: 1. 字符串里面没有符合规则的片段 ​ -> null 2. 字符串里面有符合规则的片段 ​

LoveyL0201的博客 496

arXiv订阅进阶玩法:除了邮件,还能用RSS和Python脚本打造你的专属论文追踪器

本文介绍了arXiv订阅的进阶玩法,教你如何通过RSS和Python脚本打造个性化的论文追踪器。突破传统邮件订阅的局限,实现实时更新、精准过滤和自动化管理,提升科研效率。特别适合需要高效追踪最新研究进展的学者和开发者。

weixin_26757925的博客 624

详细介绍:正则表达式超详细版

预定义类等价于功能说明\d[0-9]匹配任意数字(digit)。\D[^0-9]匹配任意非数字。\w匹配字母、数字、下划线(word 字符,注意不包含空格和特殊字符)。\W匹配非字母、数字、下划线。\s匹配任意空白字符(space:空格、制表符\t、换行符\n等)。\S匹配任意非空白字符。\b匹配单词边界(单词与非单词的分隔处,如中的空格两侧)。\B匹配非单词边界(如中两个单词的连接处)。\n匹配换行符(部分语言支持\r\n匹配 Windows 换行)。\t匹配制表符。

木牛的博客 148

【Creator】cocoscreator 2.4 apk还原为工程 (1)

Cocos Creator 2.4 还原图片 meta文件

jokesuser的博客 2258

WiseFlow本地搭建实录---保姆教程

本文介绍了如何从0开始搭建wiseflow的个人情报官的方法,目前所有的API全部都是免费的,对机器没有要求,大家可以放心搭建

liuhui244的博客 1959

Python 正则表达式学习笔记(小白超详细版)(一)

正则表达式(Regular Expression,简称 regex/re)是,Python 内置re模块支持正则操作,无需额外安装。这份笔记从逐步讲解,全程配 Python 代码示例,小白也能跟着练。

ths512的博客 499

高通camera open代码流程(hal到kernel)

内容:简单介绍Camera open代码调用流程,从HAl到kernel。(api1+hal1) 前言 Android camera api和hal对应关系。安卓在版本更新过程中,camera相关代码也经历了几个版本的更新,表现为camera HAL版本更新(HAL1->HAL2->HAL3),camera API版本更新(camera API1->camera API2),接下...

oxoo123的专栏 4276

超详细正则表达式总结

正则表达式+python详细总结

casey_fh的博客 1128

Open3D (C++) 点云边界提取【2025最新版】

Compute the boundary points of a point cloud.The implementation is inspired by the PCL implementation. Reference:https://pointclouds.org/documentation/classpcl_1_1_boundary_estimation.html

点云侠的博客 871

微信小程序 - 最新详细实现“全局实时监听页面发生跳转“ 当页面跳转后立即捕捉并触发某个操作或调用处理函数,小程序整个项目无时无刻只要路由发生变化改变了就能监听,时刻检测页面URL变化(获取路由数据)

微信小程序,vue2,vue3,监听路由,如何监听路由发生变化,如何watch监听路由,怎么全局监听页面发生变化,实现当页面路由发生变化时执行一个函数,当路由变化时执行一些操作执行一段代码,怎么监听路由变化时触发一个函数,监听页面变化,页面间的跳转如何监听,页面跳转时怎么拿到路由及参数,页面路由变化时拿到参数和url,使用watch监听路由变化,页面跳转后怎么触发事件,怎么监听页面跳转,监听页面跳转并拿到路由url路径,小程序怎么全局定义一个专门监听路由的函数,小程序怎么无时无刻实时监听路由页面跳转,监听当

🏆 前端领域优质创作者 4474

正则表达式超详细理解

学习正则表达式有几天了,今天跟大家分享一下我对python中关于正则表达式的理解。文章可能过于繁琐、篇幅过长,有不足之处烦请各位大佬帮忙斧正。 什么是正则表达式? 通俗的理解就是按照一定的规则,从某一个字符串中匹配出我们想要得到的数据。而这个规则就是正则表达式。 点我看官方理解. 为什么要学正则表达式? 1.可以判断一些数据是不是符合我们的需要 2.从网上down一些数据的时候 来设定符合自己意向...

Damingxkl 4644

【C语言学习疑难杂症】第20期:0x00007FF7F2821964处引发的异常0xC0000005写入位置 0x0000000000000

检查代码中是否存在野指针访问的情况,确保在进行写入操作之前,内存已经被正确分配或初始化,并且在使用完毕后进行了正确的释放。空指针访问:代码尝试在空指针地址(0x0000000000000000)处进行写入操作,导致访问冲突。检查代码中是否存在数组越界的情况,确保在进行写入操作之前,数组的索引值在合法范围内。检查代码中是否存在空指针访问的情况,确保在进行写入操作之前,指针已经被正确初始化。野指针访问:代码尝试在已释放或未初始化的内存地址进行写入操作,导致访问冲突。

学无止境 828

Perl正则表达式超详细教程

前言 想必学习perl的人,对基础正则表达式都已经熟悉,所以学习perl正则会很轻松。这里我不打算解释基础正则的内容,而是直接介绍基础正则中不具备的但perl支持的功能。关于基础正则表达式的内容,可参阅基础正则表达式。 我第一个要说明的是,perl如何使用正则。还记得当初把《精通正则表达式》的书看了一遍,把perl正则也学了个七七八八,但是学完后却不知道怎么去使用perl正则,虽然里面也介绍了一点...

ahilll的博客 4万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

正则表达式(常用版)

正则表达式 是用来描述字符串内容格式,使用它通常用于匹配一个字符串的内容是否符合格式要求 正则表达式的语法: 1.[]:表示一个字符,该字符可以是[]中指定的内容 例如: [abc]:这个字符可以是a或b或c [a-z] :表示任意一个小写字母 [a-zA-Z] :表示任意一个字母 [a-zA-Z0-9_] :表示任意一个数字字母下划线 [^abc] :该字符只要不是a或b或c 2.预定义字符: . :表示任意一个字符,没有范围限制 \d :表示任意一个数字,等同于[0-9] \w :表示任意一个单词

BLWY_1124的博客 4万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

正则表达式超详细讲解

正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。通俗的讲就是校验字符串是否满足规则或者在文本查找满足要求的内容。我在这里给大家举个简单的例子。如果我需要对一组qq号(字符串)进行检验,例如,要求qq号必须是6位到20位之内的,不能以0开头,还必须全是数字。按照正常来说,我需要写一个比较复杂的检测方法。像下面这个是不是看起来比较麻烦。//规则:6位及20位之内,0不能在开头,必须全部是数字//0不能在开头//必须全部是数字i++) {

2202_75481735的博客 3015

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

超详细的正则表达式的使用方法,学不会找我

正则表达式的基本使用 前言: 在我们开发过程中,有很多地方需要用到正则表达式。如验证用户登录信息、手机号、邮箱地址等等。那你都会正则表达式的哪几个方法呢? 首先,我们要知道什么是正则表达式。 正则表达式的定义: 正则表达式 RegExp (regular expression) 是ECMAScript内置对象,是一个用于对字符串实现逻辑匹配运算的对象 正则表达式的作用: 按照某种规则来匹配字符串,而正则表达式就是制定这个规则 如何使用正则表达式 (1) 创建正则表达式对象 (2) 开始匹配 使用

m0_64564920的博客 1万+

深入掌握正则表达式:MasteringRegularExpressions(3rd)无水印pdf版

深入掌握正则表达式:MasteringRegularExpressions(3rd)无水印pdf版 【下载地址】MasteringRegularExpressions3rd无水印pdf版 《Mastering Regular Expressions(第3版)》是一本深入探讨正则表达式的经典英文原版书籍,适合希望精进编程技...

gitblog_06737的博客 1170

PHP正则表达式(超详细)

正则表达式,从入门到放弃。 PHP支持两种风格的正则表达式语法: POSIX 和 Perl` 这两种表达式是编译PHP时指定的默认风格,但在PHP5.3之后,POSIX 风格被弃用。

FirMoveBrick的博客 1万+

Python超详细的正则表达式

Hello大家好我是,PYmili!今天给大家带来正则表达式的使用教程即匹配规则表格。建议收藏! 介绍 在Python中的re库就是用于正则表达式的标准库。里面包含了正则表达式的所有规则。而且学会了正则表达式,可以对爬虫有很大提升!所以,快抓紧学起来! 常用的正则表达式匹配规则表格 \w 匹配字母和数字以及下划线 \W 匹配不是字母和数字以及下划线的字符 \s 匹配任意空白字符串,等价于 " \t \n \r \f " \S 匹配任意不是空白的字符串.

PYmili的博客 2600
上一篇: WinForm窗体-->注册登录界面
下一篇: C#小案例-->汽车租聘系统计价功能
MM_MS
博客等级 码龄1年 58粉丝 100原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MM_MS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值