找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
""""""
"""
re:实现编译查找的功能,一般用于处理日志或者处理文件使用

预定义匹配符号;
\d:匹配数值
\D:匹配非数值

数量词匹配符号:
符号^:表示匹配的内容以什么进行开头
符号$:表示匹配的内容以什么进行结尾
符号*:匹配内容0次或者n次
符号+:匹配内容1次或者n次
符号?:匹配内容0次或者1次
符号{n}:表示指定匹配次数
符号{m,n}:表示匹配m次到n次

match: 从第一个字符开始进行匹配,如果第一个不是我想要匹配的内容
则匹配失败,抛出异常,输入第一个是我匹配的对象则立即返回结果
第一个参数:匹配内容的规则
第二个参数:匹配的对象
"""
"""=====================match========================="""
# 导入re正则模块
import re
# str1 = "abc123abc123"
# str1 = re.match("\D",str1)
# print(str1.group())
#

# 匹配符* :匹配0次或者n次
# str1 = "abc123abc123"
# str1 = re.match("\d*",str1)
# print(str1.group())

# 匹配符号 + 匹配1次或者n次
# str1 = "abc123abc123"
# str1 = re.match("\d+",str1)
# print(str1.group())

# 匹配符号 ? 匹配0次或者1次
# str1 = "abc123abc123"
# str1 = re.match("\D?",str1)
# print(str1.group())

# {} 自定义匹配次数
# str1 = "abc123abc123"
# str1 = re.match("\D{2}",str1)
# print(str1.group())
#

# {m,n} 匹配m次到n次
# str1 = "abc123abc123"
# str1 = re.match("\d{0,3}",str1)
# print(str1.group())

# ^ 匹配以什么进行开头
# str1 = "wuhan:duoceshi156156"
# str1 = re.match("^wuhan:\D{8}",str1)
# print(str1.group())

# 从list里面取值
# list = ["www.baidu.com","www.taobao.com","https://www.jd.com"]
# for i in list:
#     value = re.match("^www\D*",i)
#     print(value.group())


# $ 以什么进行结尾:
# li = ["www.baidu.com","www.taobao.com","www.jd.cn"]
# for i in li:
#     value = re.match("\D*com$",i)
#     print(value.group())


"""
search : 从第一个字符开始及逆行查找,找到就返回一个字符,找不到
就一直往下找(穿透查找),一直找不到-->报错
"""
"""=====================search========================"""
# str1 = "abc123abc123"
# str1 = re.search("\d",str1)  # 1
# str1 = re.search("\d?",str1)  # 输出为空
# str1 = re.search("\d*",str1)  # 1
# str1 = re.search("\d+",str1)  # 123

# print(str1.group())


"""
从第一个字符开始进行查找,找到所有相关内容的位置,找不到就返回一个空的list,
不会报错,也不需要配合group输出结果

"""
"""======================findall==========================="""
# str1 = "abc123abc123"
# str1 = re.findall("\D",str1) # ['a', 'b', 'c', 'a', 'b', 'c']
# str1 = re.findall("\d",str1)  # ['1', '2', '3', '1', '2', '3']

# print(str1)

# 使用 * 配合findall使用 ,如果不是我想要匹配的类型,则匹配为空
# 是我想要匹配的结果(如果值是连续的)则合并存储在list当中
# str1 = "abc123abc123"
# str1 = re.findall("\d*",str1)
# print(str1) # ['', '', '', '123', '', '', '', '123', '']

# 使用 + 配合findall使用 ,不会匹配空值
# str1 ="abc123abc123"
# str1 = re.findall("\d+",str1)
# print(str1) # ['123', '123']

# 使用 ? 配合findall使用 ,匹配所有内容,不是想要的对象空格储存,如果是
# 我匹配的对象,按值的单个位置进行存储

# str1 ="abc123abc123"
# str1 = re.findall("\d?",str1)
# print(str1) #
# print(str1) #['', '', '', '1', '2', '3', '', '', '', '1', '2', '3', '']


# findall 匹配指定区间的值:
#. 代表所有的内容 ,+ 代表匹配一次或者多次
# str1 = "www.taobao.com"
# str1 = re.findall("www.(.+).com",str1)
# print(str1)

# str1 = "http://shop.duoceshi.com/login?redirect=%2Fdashboard"
# str1 = re.findall("://(.+)/login",str1)
# print(str1)

"""
compile : 作用:
    生成正则的对象,单独使用没有任何效果,定义当前匹配的规则

"""
"""======================compile=========================="""
# str1 = "http://shop.duoceshi.com/login?redirect=%2Fdashboard"
# str2 = re.compile("://(.+)/login")
#
# str2 = str2.findall(str1)
# print(str2)


# time random string os xlrd copy pymysql
"""
pymysql :属于一个第三方的工具包,是用来操作链接数据的
"""

import pymysql
"""
connect :和数据库进行链接的方法:

connect 链接数据库需要的参数:
:param host: Host where the database server is located (ip地址)
:param user: Username to log in as(用户名)
:param password: Password to use.(用户密码)
:param database: Database to use, None to not use a particular one.
:param port: MySQL port to use, default is usually OK. (default: 3306)
(数据库的端口号,你的端口没有更改默认是3306)

127.0.0.1 和localhost 是一样的代表本地

host:linux mysql 填写你linux 的ip
port :注意:端口号是需要接收int型

如果连接报错,检查你的用户名是否具有远程访问权限
linux 需要关闭防火墙
"""

db = pymysql.connect(
    host = "192.168.2.36",
    user = "root",
    password = "123456",
    database = "dcs20",
    port=3306
    )

""" cursor :相当于一个容器,用来存储执行sql返回的结果
执行sql语句也是通过游标对象进行执行
"""

# wuhan = db.cursor()
""" execute:执行sql语句"""
# wuhan.execute("insert into dept values(105,'wang')")
# wuhan.execute("create table wuhanduoceshi(id int(5) primary key auto_increment,name char(6))")
# db.commit()
#
# wuhan.execute("update dept set dept_name = 'sb' where dept1 = 105;")
# # fetchone 查看第一行的结果
# # print(wuhan.fetchone())
#
# # fetchall 查询表中所有的内容
# wuhan.execute("select * from dept;")
# wuhan.execute("delete from dept where dept1 = 105;")
# wuhan.execute("select * from dept;")
#
#
# print(wuhan.fetchall())
#
# def select_mysql(host,user,password,database,select_sql,port = 3306):
#     db = pymysql.connect(
#         host = host,
#         password = password,
#         user=user,
#         database=database,
#         port=port)
#     wuhan = db.cursor()
#     wuhan.execute(select_sql)
#     password(wuhan.fetchall())
#
# select_mysql(
#     host="192.168.2.36",
#     password="123456",
#     user="root",
#     database="dcs20",
#     select_sql="select * from dept;",
#     port=3306)
#
#
# def update_mysql():
#     pass
#
# def delete_mysql():
#     pass


"""JSON 模块 :
用来处理数据类型的转换的,json是一种数据格式,类似字典。
那么python 当中是没有json的,我们称之字典。
{"KEY":"values"}

"""
# a = eval('{"KEY":"values"}')
# print(a)

import json
#将字典格式的字符串(在其他内容中叫做json字符串)转换给dict
#可以使用eval(),也可以通过json模块当中的loads()方法
#进行数据转换
# str1 = '{"KEY":"values"}'
# print(type(str1)) # <class 'str'>
# str1 = json.loads(str1)
# print(type(str1))  #<class 'dict'>


# 将字典转换为(字典字符串)json 字符串 ,dumps

# dict1 = {"KEY":"values"}
# print(type(dict1))
# dict1 = json.dumps(dict1)
# print(type(dict1))


# li = ["17671855224","13971962645","15672719161"]
# for i in li:
#     str1 = re.findall("^[1][37][69]\d{8}",i)
#     print(str1)


import random
import string


x=[]
while x == []:
    li = []
    for i in range(11):
        li.append(random.choice(string.digits))
    li1 = "".join(li)
    x = re.findall("^[1][35789][1-9]\d{8}",li1)
print(x[0])


分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册