悠悠楠杉
揭秘正则表达式:从基础到进阶的深度解析
06/12
        1. 正则表达式基础入门
正则表达式由一系列字符组成,用于定义字符串的搜索或匹配模式。它主要由三种元素构成:字符类、量词和分组。
- 字符类:如a-z表示任意小写字母,.表示任意单个字符(除了换行符)。
- 量词:如*表示零次或多次,+表示一次或多次,?表示零次或一次。
- 分组:通过圆括号()将多个字符作为一个整体处理,用于后向引用等复杂操作。
2. 基础语法示例与实战
示例1:简单匹配
regex
\d+  # 匹配一个或多个数字
实战:检查字符串中是否包含至少一个数字
python
import re
text = "Here are some numbers: 123 and 456."
if re.search(r"\d+", text):
    print("Found at least one digit in the text.")
示例2:邮箱匹配
regex
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}  # 匹配常见的电子邮件地址格式
实战:验证用户输入的邮箱格式是否正确
python
email = "user@example.com"
if re.match(r"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}", email):
    print("Valid email.")
else:
    print("Invalid email.")
3. 高级技巧与特性
3.1 反向预查(Negative Lookahead)与正向预查(Positive Lookahead)
反向预查用于确保某模式不出现于某位置之前,而正向预查则确保某模式出现于某位置之前。regex  # 匹配不包含'www'的URLs
(?!www\.)  # 断言后面不跟"www."的任何字符的开头位置为负向前瞻的开始点。 例子:https://example.org/page  但不匹配 https://www.example.com/page
 
                                            
                 
                         
                                