正则表达式

Posted chenliang0309

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

1 正则表达式概述

1.1 什么是正则表达式

正则表达式:Regular Expression,是一些由特殊的字符和符号组成的字符串,主要用来进行高级的文本匹配、搜索、替换等功能操作。
正则表达式是一个独立的技术,python中提供了re模块来支持正则表达式

1.2 第一个正则表达式

import re

target = "hello, [email protected] regexp in python with regular on expression"

reg = r"l"
print(re.findall(reg, target))

2 正则表达式操作语法

2.1 基本语法

2.1.1 基本正则语法

技术分享图片

2.1.2 正则表达式:元字符

技术分享图片

2.1.3 正则表达式:零宽断言

技术分享图片

3 正则语法案例

"""
FILE    : 正则表达式语法操作
DATETIME: 2018/10/18 11:22
AUTHOR  : chenliang
DESC    : 
"""
import re

s = ‘‘‘Are you new to Django or to programming? This is the place to start!
From scratch: Overview | Installation
Tutorial: Part 1: Requests and responses | Part 2: Models and the admin site
| Part 3:
Views and templates | Part 4: Forms and generic views | Part 5: Testing |
Part 6:
Static files | Part 7: Customizing the admin site
Advanced Tutorials: How to write reusable apps | Writing your first patch
for Django123_
‘‘‘

# 1 基本语法
reg1 = r"to"
print(re.findall(reg1, s))
# [‘to‘, ‘to‘, ‘to‘, ‘to‘, ‘to‘, ‘to‘, ‘to‘]

# 2 或者匹配
reg2 = r"Django|part"
print(re.findall(reg2, s))
# [‘Django‘, ‘Django‘]

# 3 开头匹配
reg3 = r"^Are"
print(re.findall(reg3, s))
# [‘Are‘]

# 4 结尾匹配
reg4 = r"Django123_$"
print(re.findall(reg4, s))
# [‘Django123_‘]

# 5 认识字符匹配
reg5 = r"Ho."
print(re.findall(reg5, s))
# [‘How‘]

# 6 范围匹配?
reg6 = r"pr?"
print(re.findall(reg6, s))
# [‘pr‘, ‘p‘, ‘p‘, ‘p‘, ‘p‘, ‘p‘, ‘p‘]

# 7 范围匹配+
reg7 = r"pr+"
print(re.findall(reg7, s))
# [‘pr‘]

# 8 范围匹配*
reg8 = r"pr*"
print(re.findall(reg8, s))
# [‘pr‘, ‘p‘, ‘p‘, ‘p‘, ‘p‘, ‘p‘, ‘p‘]

# 9 范围匹配{m}
reg9 = r"l{2}"
print(re.findall(reg9, s))
# [‘ll‘]

# 10 范围匹配{m, n}
reg10 = r"l{1,3}"
print(re.findall(reg10, s))
# [‘l‘, ‘ll‘, ‘l‘, ‘l‘, ‘l‘, ‘l‘, ‘l‘, ‘l‘]

# 11 范围匹配{0-9}
reg11 = r"[0-9]+"
print(re.findall(reg11, s))
# [‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘123‘]

# 12 范围匹配[a-z]
reg12 = r"[a-z]{10}"
print(re.findall(reg12, s))
# [‘programmin‘, ‘nstallatio‘, ‘ustomizing‘]

# 13 范围匹配[a-zA-Z0-9_]
reg13 = r"[a-zA-Z0-9_]{10}"
print(re.findall(reg13, s))
# [‘programmin‘, ‘Installati‘, ‘Customizin‘, ‘Django123_‘]

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

攻破难啃的骨头-正则表达式(转)

正则表达式的贪婪和非贪婪模式