正则表达式及应用
正则表达式是处理字符串的一种技术,它先使用使⽤⼀个python自带的模块re模块预定义特定模式,然后匹配一类具有共同特征的字符串,可以快速、准确地完成复杂查找、替换等操作,可以应用于网络编程。
正则表达式的大致匹配过程是:
1.依次拿出表达式和文本中的字符比较,
2.如果每一个字符都能匹配,则匹配成功;一旦有匹配不成
功的字符则匹配失败。
3.如果表达式中有量词或边界,这个过程会稍微有一些不同。
元符号 | 功能 |
---|---|
^ | 匹配行首 |
$ | 匹配行尾 |
. | 任意单个字符 |
[ ] | 匹配包含在中括号中的任意字符 |
[^] | 匹配包含在中括号中的字符之外的字符 |
[ - ] | 匹配指定范围的任意单个字符 |
? | 匹配之前项的1次或者0次 |
+ | 匹配之前项的1次或者多次 |
* | 匹配之前项的0次或者多次 |
{n} | 匹配之前项的n次 |
{m,n} | 匹配之前项最大n次,最小m次 |
{n,} | 配置之前项至少n次 |
[…]字符集,对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,比如[abc]和[a-c],第一个字符如果是^ 表示取反。所有特殊字符(比如" ] " " - " " ^ “)在字符集中都失去原来的含义,如要使用可把” ] " " - " 放在第一个字符," ^ "放在非第一个字符。
re模块具体详细文章
(站在大佬的肩膀上挺舒服的哈哈)
字符串
字符串编码
字符串编码有以下格式
ASCLL编码是7位编码,一共可以组成128个不同的ASCII码,其中可以打印的有95个(95个中包括了空格),还有33个控制字符不可打印。
UTF-8、UTF-16、UTF-32:国际通用编码格式,采用3个字节表示1个汉字。
GB2312、GBK:GBK是我国制定的中文编码标准采用1个字节表示1个英文字符,采用2个字节表示1个汉字
Unicode:不同编码格式之间相互转化的基础。
ISO为了统一所有的字符集,提出了unicode
这一统一的字符标准,认定英语字母和汉字都算一个字符即两个字节
(一个字符两个字节
),进行了统一。然后unicode又衍生****出两个传输标准 utf-8 ,utf-16进行信道编码 (unicode为信源编码),所以说unicode和utf-8不是一 一对应的,需要按照一定的规则进行转换。如,中文在unicode占两个字节,在utf-8占3个字节。
python 的编码乱码问题
字符创建在python内部采用unicode字符集,除了ASCII码,像中文在字符集中存储的格式是\x65\xa23\u94c1\u9a6……所以unicode是不直接显式的识别中文的,则需要将中文装解码decode
成计算机识别的unicode码,然后再编码转换成utf-8编码输出,则可以显式的出现中文。
字符串运算
1.字符串赋值
将一个字符串赋值给另外一个字符串
str1 = "你好"
str2 = str1
2.字符串合并 (使用“+”,运算符将两个或者多个字符串合并)
str1 = "你好"
str2 = "python"
str3 = str1 + str2
print(str3)
3.求字符串长度。汉字和英文字符、数字,长度都为两个字节(一个字符)
。
str = "你好"
print(len(str)) #结果为2 表示两个字符(四个字节)
(字符串格式化,map()函数 字符串方法与应用,这里我就直接引用大佬文章不做详解)
字符串格式化
字符串除了链接文章里还有一个map(fun,seq)方法
字符串方法与应用
因为目前我只接触了网络编程的基础,所以正则表达式相关知识就学习到这里
果然编程的学海无涯啊!(哭死)