#_author:来童星
#date:2019/12/11
#1.拼接字符串
mon_en='Remerbrance is a form of meeting,Frgetfulness is a form of freedom '
mon_cn='记忆是一种相遇,遗忘是一种自由'
print(mon_en+'----'+mon_cn)
# Remerbrance is a form of meeting,Frgetfulness is a form of freedom ----记忆是一种相遇,遗忘是一种自由
#2.计算字符串长度
a='我今天一共走了'
b=10200
c='步'
print(a+str(b)+c)# 我今天一共走了10200步
#3计算字符串的长度
str1='人生苦短,我用python'
le=len(str1)
print(le)# 13
le1=len(str1.encode())
print(le1)#27
le2=len(str1.encode('gbk'))
print(le2)# 20
#4截取字符串
tr='人生苦短,我用python'
tr1=tr[1]
tr2=tr[5:]
tr3=tr[:5]
tr4=tr[2:]
print('source:',tr)# 人生苦短,我用python
print(tr1+'
'+tr2+'
'+tr3+'
'+tr4)
try:
s1=tr[15]
except IndexError:
print('指定的索引不存在')
#5分割字符串
str2='来 童 星 加 油 >>>> www.comeup.com'
li1=str2.split()
li2=str2.split('>>>>')
li3=str2.split('.')
li4=str2.split(' ',4)
print(li1)#['来', '童', '星', '加', '油', '>>>>', 'www.comeup.com']
print(li2)# ['来 童 星 加 油 ', ' www.comeup.com']
print(li3)# ['来 童 星 加 油 >>>> www', 'comeup', 'com']
print(li4)# ['来', '童', '星', '加', '油 >>>> www.comeup.com']
li5=str2.split('>')
print(li5)# ['来 童 星 加 油 ', '', '', '', ' www.comeup.com']
#6.检索字符串
s='@如冰 @星星 @雷军'
#(1 ---count()方法
print('字符串'+s+'包括@字符'+str(s.count('@'))+'个')# 字符串@如冰 @星星 @雷军包括@字符3个
#(2 ---find()方法
print('@首次出现的位置索引:'+str(s.find('@')))# @首次出现的位置索引:0
print('字符串'+s+'中*符号首次出现的位置索引为:'+str(s.find('*')))# 字符串@如冰 @星星 @雷军中*符号首次出现的位置索引为:-1
#(3 ---->index()方法
print('@首次出现的位置索引:'+str(s.index('@')))# @首次出现的位置索引:0
# (4)------startswith()方法
# print('字符串'+s+'中*符号首次出现的位置索引为:'+str(s.index('*')))# ValueError: substring not found
print('字符串'+s+'是否以@开头:'+str(s.startswith('@')))# 字符串@如冰 @星星 @雷军是否以@开头:True
#(5 ---->endswith()方法
print('字符串'+s+'是否以@结尾:'+str(s.endswith('@')))# 字符串@如冰 @星星 @雷军是否以@结尾:False
#7 .字母的大小写转换
q=' Go Home or Go Big'
#(1 upper()
print('source string:'+q)# source string: Go Home or Go Big
print(q.upper())# GO HOME OR GO BIG
#(2 --lower()
print(q.lower())# go home or go big
# (3)去除字符串中的空格和特殊字符
#strip() lstrip() rstrip()
w='
I Love China
'
print('source string:'+w)
print('new string:'+w.strip())
w1='
I Love China'
print('source string:'+w1)
print('new string1:'+w1.lstrip())
w2='I Love China
'
print('source string:'+w2)
print('new string2:'+w2.rstrip())
w3='@如冰 星星@.'
print('source string:'+w3)
print('new string3'+w3.strip('@.'))
w4='@如冰 星星'
print('source string:'+w4)
print('new string4'+w4.lstrip('@'))
w5='如冰 星星@...'
print('source string5:'+w5)
print('new string5'+w5.rstrip('@.'))
#(2格式化字符串
template='编号:%09d 公司名称:%s 官网: http://www.%s.com'
context1=(7,'百度','baidu')
context2=(8,'谷歌','guge')
print(template%context1)
print(template%context2)
#(3 format()---方法
template1='编号:{:0>9s} 公司名称:{:s} 官网: http://www.{:s}.com'
context11=template1.format('7','百度','baidu')
context22=template1.format('8','谷歌','guge')
print(context11)
print(context22)
#8行定位符
#9 匹配字符串
#(1---使用match()方法进行匹配
import re
s='tmand'
pattern=r'mr_w+'
string='Mr_shop mr_shop'
match=re.match(pattern,string,re.I)# match 从起始位置搜索
print(match)# <_sre.SRE_Match object; span=(0, 7), match='Mr_shop'>
print('匹配值的起始位置:',match.start())# 0
print('匹配值的结束位置:',match.end())# 7
print('匹配位置的元组:',match.span())# (0, 7)
print('要匹配的字符串:',match.string)# Mr_shop mr_shop
print('匹配数据:',match.group())# Mr_shop
string1='星星Mr_shop mr_shop'
match1=re.match(pattern,string1,re.I)
print(match1)# None
#(2---使用search()方法进行匹配------>不仅可以从起始位置搜索
s='tmand'
pattern=r'mr_w+'
string3='Mr_shop mr_shop'
match3=re.search(pattern,string3,re.I)
print(match3)# <_sre.SRE_Match object; span=(0, 7), match='Mr_shop'>
print('============================')
string5='星星Mr_shop mr_shop'
match5=re.search(pattern,string5,re.I)
print(match5)# <_sre.SRE_Match object; span=(2, 9), match='Mr_shop'>
#(2---使用findall()方法进行匹配------>搜索所有符合正则表达式的字符串
pattern=r'mr_w+'
string2='Mr_shop mr_shop'
match2=re.findall(pattern,string2,re.I)
print(match2)# ['Mr_shop', 'mr_shop']
pattern=r'mr_w+'
string4='星星Mr_shop mr_shop'
match4=re.findall(pattern,string4,re.I)
print(match4)
match6=re.findall(pattern,string4)
print(match6)# ['mr_shop']
print('=====================================re')
parten=r'[1-9]{1,3}(.[0-9]{1,3}){3}'
str3='127.0.0.6 192.168.3.4'
ma=re.findall(parten,str3)
print(ma)# ['.6', '.4']
parten1=r'([1-9]{1,3}(.[0-9]{1,3}){3})'
str4='127.0.0.6 192.168.3.4'
ma1=re.findall(parten1,str4)
print(ma1)# [('127.0.0.6', '.6'), ('192.168.3.4', '.4')]
parten2=r'([1-9]{1,3}(.[0-9]{1,3}){3})'
str5='127.0.0.6 192.168.3.4'
ma2=re.findall(parten2,str5)
for item in ma2:
print(item[0])# 去返回值列表每一个元素的第一个元素
#(3替换字符串
pa=r'1[34578]d{9}'
sr='中奖号码为:84978981 联系电话为:13692356985'
result=re.sub(pa,'1XXXXXXXXXX',sr)
print(result)# 中奖号码为:84978981 联系电话为:1XXXXXXXXXX
#(4 使用正则表达式分割字符串
pat=r'[?|&]'
url='http://www.jingdong.com/login.jsp&username="mr"?pwd="mrsoft"'
ma3=re.split(pat,url)
print(ma3)# ['http://www.jingdong.com/login.jsp', 'username="mr"', 'pwd="mrsoft"']