Python正则

re模块使得Python拥有全部的正则表达式功能,使用时要先导入re模块。
1、findall()方法,在字符串中查找所有的子串,把匹配结果以列表的格式返回,若无匹配的则返回空列表。

import re
# re.findall(要匹配的子串,字符串)
a = "python123123145java"
print(re.findall("1", a))

2、match()方法,匹配字符串的开始位置,只能匹配一个,找到符合规则的就返回,如果开始位置没有符合的则返回None,有的话返回一个对象,若需要返回匹配的字符串用re.match().group()

import re
a = "python123123java"
print(re.match('python',a))
print(re.match('python',a).group())

3、search()方法,扫描整个字符,返回搜索到的第一个,匹配成功时返回一个匹配对象(这个对象包含了我们匹配的对象),若需要返回匹配的字符串用re.search().group(),没有符合规则的返回None,也是只能匹配到一个,找到符合规则的就返回,不会一直往后找。

import re
a = "python123123java"
print(re.search('python',a).group())

4、元字符
(1)单字符匹配
.:匹配任意一个字符(除了\n)
[]:匹配[]中列举的字符
\d:匹配数字,即0-9
\D:匹配非数字,即不是数字
\s:匹配空白,即空格,tab键
\S:匹配非空白
\w:匹配单词符,即a-z、A-Z、0-9、_、包含中文等字符(匹配的是非标点符号)
\W:匹配非单词字符(匹配的是标点符号)
(2)代表数量的元字符
*:匹配前一个字符出现0次或者无限次,即可有可无
+:匹配前一个字符出现1次或者无限次,即至少有1次
?:匹配前一个字符出现0次或者1次,即要么有1次,要么没有
{m}:匹配前一个字符出现m次
{m,}:匹配前一个字符至少出现m次
{m,n}:匹配前一个字符出现从m到n次
(3)代表边界的元字符
^:匹配字符串开头
$:匹配字符串结尾
\b:匹配一个单词的边界
\B:匹配非单词边界
(4)分组匹配
|:匹配左边任意一个表达式
(ab):将括号中的字符作为一个分组
5、贪婪和非贪婪模式
正则默认都是用贪婪模式去匹配数据的,就是尽可能多的匹配符合要求的数据,在非贪婪模式始终找最短匹配。
在编程中默认都是贪婪模式,在量词后面直接加上一个问号?就是非贪婪模式。

import re
a='aa2323'
print(re.match(r'aa\d+',a).group())   #会尽可能多的去匹配\d
# aa2323
print(re.match(r'aa\d+?',a).group())  #尽可能少的去匹配\d
# aa2

6、用正则对登录的用户名密码判断
输入用户名和密码
1.用户名必须是8--12位
2.用户名必须是字母开头
3.用户名不能有中文
4.密码不能和用户名相同
5.密码必须有至少8位
6.密码不能超过16位

import re
username = input("用户名:")
password = input("密码:")
a = r'^[A-Za-z][A-Za-z0-9]{7,11}$'
b = r'^\d+$'
if  re.match(a , username) :       # 用户名必须是8--12位,用户名必须是字母开头,用户名不能有中文
    if re.match(b,password) and password!=username:     # 密码不能有中文,密码不能和用户名相同,密码必须有至少8位,密码不能超过16位
        if 8<=len(password)<=16:
            print('登录成功')
        else:
            print('密码输入长度不满足')
    else:
        print('密码输入不全是数字或密码和用户名不能相同')
else:
    print('用户名输入不正确')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • re模块操作 在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re re模块的使...
    gg大宇阅读 530评论 0 1
  • PythoN 正则 官方介绍:https://docs.python.org/3.2/library/re.htm...
    天空蓝雨阅读 713评论 0 2
  • 字符相关 |语法|说明||---|:---|:---:|---:|| . |匹配除换行符之外的任意字符|| \ |...
    胖宝宝王阅读 305评论 0 0
  • Python如何支持正则 我用的是python来实现正则,并使用Jupyter Notebook编写代码。 Pyt...
    牛马说测试阅读 257评论 0 0
  • 暂时先写到这里,随使用逐步更新此文,希望我的总结能帮到你 Regular Expression Syntax **...
    jockerMe阅读 675评论 0 6

友情链接更多精彩内容