python字符串学习

1.python字符串处理

(1)去除一些空格和字符使用.strip()函数,如:

input_str = ' 今天天气不错,今天挺风和日丽的 '
input_str.strip()

'今天天气不错,今天挺风和日丽的'

 或者单独去除首尾的空格

input_str.lstrip()

'今天天气不错,今天挺风和日丽的 '

(2)替代函数.replace() 

input_str.replace('今天','昨天')

' 昨天天气不错,昨天挺风和日丽的 '

(3)查找.find()

input_str.find('今天')

1

 由于首部有空格,所以'今天'的其实位置从1开始。

(4)判断操作

input_str.isalpha()

False

input_str.isdigit()

False

这里的判断是表示,是否全部是数字或者字符。

(5)分割和合并

input_str = '今天 天气 不错,今天 挺风 和日 丽的'
input_str = input_str.split(' ')            #分割
input_str

['今天', '天气', '不错,今天', '挺风', '和日', '丽的']



''.join(input_str)               #合并


'今天天气不错,今天挺风和日丽的'

(6) 正则表达式语法

·指定好匹配的模式-pattern
·选择相应的方法-match,search等·得到匹配结果-group
.re.match #从开始位置开始匹配,如果开头没有则无. re.search #搜索整个字符串
. re.findall #搜索整个字符串,返回一个list

首先选定好匹配的模板并赋值

pattern = re.compile(r'')
input='自然语言处理很重要。12bc789'
import re
pattern = re.compile(r'\d') 
re.findall(pattern,input)

['1', '2', '7', '8', '9']

‘\d’表示数字;‘\D’表示非数字;'\w'匹配字母和数字;'\W'匹配非字母和数字;'\s'匹配间隔符号

pattern = re.compile(r'\D') 
re.findall(pattern,input)

['自', '然', '语', '言', '处', '理', '很', '重', '要', '。', 'b', 'c']

精确匹配,把m位的数字取出'\d{m}'

pattern = re.compile(r'\d{2}') 
re.findall(pattern,input)

['12', '78']

match 与search
它们的返回不是一个简单的字符串列表,而是一个 MatchObject,可以得到更多的信息。

match如果匹配不成功,它们则返回一个NoneType报错。所以在对匹配完的结果进行操作之前,必需先判断一下是否匹配成功了。
match 从字符串的开头开始匹配,如果开头位置没有匹配成功,就算失败了;而search 会跳过开头,继续向后寻找是否有匹配的字符串。

input2 = '123'
pattern = re.compile(r'\d') 
match = re.match(pattern,input2)
match.group()

'1'

(7)字符串的替换和修改

在目标字符串中规格规则查找匹配的字符串,再把它们替换成指定的字符串。你可以指定一个最多替换次数,否则将替换所有的匹配到的字符串。
sub ( rule , replace , target [,count] )

subn(rule , replace , target [,count])----返回一个元组,第一个元素是被替换的字符串,第二个元素是一个数字,表明产生了多少次替换。

第一个参数是正则规则,第二个参数是指定的用来替换的字符串,第三个参数是目标字符串,第四个参数是最多替换次数。

input2 = '123'
pattern = re.compile(r'\d') 
re.sub(pattern,'数字',input2)

'数字数字数字'

input2 = '123'
pattern = re.compile(r'\d') 
re.subn(pattern,'数字',input2)

('数字数字数字', 3)

(8)分割

split 切片函数。使用指定的正则规则在目标字符串中查找匹配的字符串,用它们作为分界,把字符串切片。

split( rule , target [,maxsplit] )
第一个参数是正则规则,第二个参数是目标字符串,第三个参数是最多切片次数,返回一个被切完的子字符串的列表

input='自然语言处理123机器学习456深度学习'
pattern = re.compile(r'\d+')
re.split(pattern,input)

['自然语言处理', '机器学习', '深度学习']

(9)分词

import nltk
from nltk.tokenize import word_tokenize
from nltk.text import Text
input_str="Today's weather is good"
tokens = word_tokenize(input_str)
tokens = [word.lower()for word in tokens]

['today', "'s"]

word.lower表示将大写换成小写。

(10)停用词

test_words = [word.lower() for word in tokens]
test_words_set = set(test_words)
test_words_set.intersection(set(stopwords.words('english')))

{'is'}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值