import re
reg = re.match(r"hello", "hello world,hello Ms peng!")
print(reg) #<re.Match object; span=(0, 5), match='hello'>
#使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
print(reg.group()) #hello
#re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
reg2 = re.match(r"([a-zA-Z0-9]{4,20})@(163|126|qq)\.com$", "hmh990506@163.com")
print('match: ',reg2.group()) #匹配的整个表达式的字符串
print(reg2.groups()) #('hmh990506', '163')
#re.search 扫描整个字符串并返回第一个成功的匹配。
reg3 = re.search(r"([a-zA-Z0-9]{4,20})@(163|126|qq)\.com$", "My Email:hmh990506@163.com")
print('search: ',reg3.group())
#re.search 扫描整个字符串并返回第一个成功的匹配
print(re.search(r"\d+", "阅读次数为99 99R9999").group())
#re.findall寻找所有符合正则的项,并返回匹配列表list[]
#'list' object has no attribute 'group',不需要用.group()
print('findall: ',re.findall(r"\d+", "python:7777,C:456321,C++:9999"))
#re.sub方法将匹配到的项进行替换
print('sub: ',re.sub("\\d+", "998", "python=997,C++=10245"))
#re.split方法根据匹配进行切割字符串,并返回一个列表list[]
print('split: ',re.split(r":| ", "info:hanmh- 21 shanxi"))
![](https://i-blog.csdnimg.cn/blog_migrate/2ace3096743b0fa5e09dfb3079b356c1.jpeg)
import re
# 构造dataframe数据
df_text = pd.DataFrame({
'sentence': ['#Obama, says goodbye', 'Just a simple, #egg']})
# 将功能封装成一个方法
def find(text):
h = re.findall(r'#(\w+)', text)
print(h)
return ''.join(h)
# pandas 结合 apply和lambda函数处理某列内容
df_text['new'] = df_text['sentence'].apply(lambda x: find(x))
# 清洗掉一些符号
""" (function) def sub(
pattern: str | Pattern[str],
repl: str | ((Match[str]) -> str),
string: str,
count: int = 0,
flags: _FlagsType = 0
) -> str """
df_text['sentence']=df_text.sentence.astype('str').apply(
lambda x: re.sub('[0-9+,,.。…、“”^_?::’‘''""()#();;【】!!*?]+', '', x))
print(df_text)