数据预处理5之正则化
import numpy as np
import pandas as pd
import re
data1 = pd.read_csv("F:/tianic_train.csv")
data2.head(40)
#循环正则化,提取dataframe
list1=[]
for i in data2.to_list():
list1.append(re.split("\s",data2.loc[0]))
data1["A"]=list1
#拆分字符串
text1 = "ab x cj p m"
regex=re.compile("\s") #方法进行自行编译
regex.split(text)
#寻找所有匹配项
text2 = "a ,1,2,, _ n , n m ,"
regex = re.compile("\w") #自行编译
regex.findall(text2)
#寻找第一匹配,没有返回none
text3 = "a ,,, _ n , n m ,"
regex = re.compile("\w") #自行编译
regex.search(text3)
#只看开头第一个有没有匹配,没有返回none
text4 = "a ,1,2,, _ n , n m ,"
regex = re.compile("\w") #自行编译
regex.match(text4)
#替换匹配到的项
text5 = "a ,1,2,,2 _ n , n m ,"
regex = re.compile("\d") #自行编译
regex.sub("100",text5,2)
"""
###特殊符号与字符
1.管道符(|):
模式:A|B|C
含义:从多个模式中选择其一
作用:用于分割不同的表达式
注意点:
如果A模式匹配成功后,不会再匹配B、C,即管道符是非贪婪的。
如果要匹配普通字符|,可以使用使用转义字符\|
2.句点(.):
模式:A.B.C
含义:匹配任意单个字符,除了换行符\n除外,可以匹配普通空格(非\n)
作用:类似占位符,只占一个字符的空位
注意点:
re.S或者re.DOTALL,可以用来任意单个字符,包括换行符\n
匹配普通字符句点,使用转义字符\.
3.脱字符(^):
模式:^start
含义:在字符串的开始位置进行匹配
作用:与大多数模式不同,^(脱字符)指定了匹配的起始位置
4.美元符($):
模式:end$
含义:以末尾的字符串模式进行匹配
作用:与脱字符差不多,都是指定匹配的位置
5.方括号([])与取反([^]):
模式:匹配一对方括号中的任一字符
示例:
[amk]: 匹配字符\'a\'或者\'m\'或者\'k\'
[a-z]:匹配小写字母a至z
[0-10]:匹配数字0至10
[^aeiou]: 表示不匹配方括号中出现的任一字符,即匹配非元音字母
6.闭包操作符实现存在性和频率匹配
以下为贪婪匹配模式:They match as much text as possible.
星号(*): 匹配其左边出现的正则表达式0次或者多次,即[0, +oo),取值为整数
加号(+): 匹配其左边出现的正则表达式1次或者多次,即[1, +oo), 取值为正整数
问号(?): 匹配其左边出现的正则表达式0次或者1次
花括号{N}:匹配其左边出现的正则表达式N次
花括号{M, N}:匹配其左边出现的正则表达式M~N次
以下为非贪婪匹配模式:“偷懒”模式,as few characters as possible will be matched.
*?:匹配0次
+?:匹配1次
??:匹配0次
{M, N}?: 只匹配M次
7. 反斜杠(\):
作用:将以上一些特殊字符进行转义,变为普通字符,比如\? \. \*等。
8.使用圆括号()分组:
含义:有些时候,我们不仅想知道整个字符串是否匹配我们的标准,可能还会对匹配成功的数据更感兴趣,想要提取已经成功匹配的特定字符串或者字符串,这个时候我们可以使用括号包括任何正则表达式。
作用:
对正则表达式分组
匹配子组
注意:
To match the literals \'(\' or \')\',
use \( or \), or enclose them inside a character class: [(], [)].
9.字符集的特殊字符:
含义:有些特殊字符能够表示字符集
\d 任何十进制数字,即[0-9]
\D 表示任何非十进制数字,即[^0-9]
\w 全部字母、数字的字符集,相当于[A-Za-z0-9]
\s 表示空白字符
\b 匹配字符串边界,
\B 匹配出现在一个单词中间的模式,即不是单词边界
10.扩展表示法
形式:(?...)
常用的扩展符号,见re模块常见属性部分
"""
版权声明:本文为jiangsunanjing123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。