#1.需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的。
#string 对象的 split() 方法只适应于非常简单的字符串分割情形
#它并不允许有多个分隔符或者是分隔符周围不确定的空格。
# 当你需要更加灵活的切割字符串的时候,最好使用 re.split() 方法
import re
line = 'aaa bbb ccc;ddd eee,fff'
print(line)
r1=re.split(r';',line)#单字符切割
print(r1)
# 两个字符以上切割 【】
r2=re.split(r'[;,]',line)
print(r2)
# 所有空白字符切割
r3 =re.split(r'[;,\s]',line)
print(r3)
# 使用括号捕获分组,默认保留分割符
r4 =re.split(r'([;])',line)
print(r4)
# 不想保留分隔符,以(?:...)的形式指定
r5 = re.split(r'(?:[;])',line)
print(r5)
aaa bbb ccc;ddd eee,fff
['aaa bbb ccc', 'ddd eee,fff']
['aaa bbb ccc', 'ddd eee', 'fff']
['aaa', 'bbb', 'ccc', 'ddd', '', '', 'eee', 'fff']
['aaa bbb ccc', ';', 'ddd eee,fff']
['aaa bbb ccc', 'ddd eee,fff']
描述
startswith()函数是Python的字符串函数。startswitch()用于检测字符串是否以指定字符串开头。如果是则返回True,否则返回False.
- 语法及参数
str.startswith(str2)
名称 | 含义 | 备注 |
---|---|---|
str | 待检测的字符串 | |
str2 | 检测str2字符串是否是str字符串的开头 | 不可省略的参数 |
举例
>>> pro.startswith("Chi")
True
>>> pro.startswith("hi")
False
# 2.需要通过指定的文本模式去检查字符串的开头或者结尾,
# 比如文件名后缀,URL Scheme等等。
# 检查字符串开头或结尾的一个简单方法是使用 str.startswith()
# 或者是 str.endswith() 方法
filename = 'list.txt'
a1=filename.endswith('.txt')
a2=filename.startswith('list')
a3=filename.startswith('lisp')
print(a1,a2,a3)
True True False
3.在字符串中搜索和匹配指定的文本模式;对于简单的字面模式,直接使用 str.replace() 方法即可;
对于复杂的模式,请使用 re 模块中的 sub() 函数。
为了说明这个,假设想将形式为 11/27/2012 的日期字符串改成 2012-11-27。
re.sub的各个参数的详细解释
re.sub共有五个参数。
其中三个必选参数:pattern, repl, string
两个可选参数:count, flags
https://blog.csdn.net/qq_43088815/article/details/90214217
https://blog.csdn.net/weixin_30454481/article/details/96662513
inputStr = '11/27/2012'
re.sub(r'(\d+)/(\d+)/(\d+)', r'\3-\1-\2', inputStr)
'2012-11-27'
# 4.需要以忽略大小写的方式搜索与替换文本字符串,
# 为了在文本操作时忽略大小写
# 需要在使用 re 模块的时候给这些操作提供 re.IGNORECASE 标志参数
text = 'UPPER PYTHON, lower python, Mixed Python'
def matchcase(word):
def replace(m):
text = m.group()
if text.isupper():
return word.upper()
elif text.islower():
return word.lower()
elif text[0].isupper():
return word.capitalize()
else:
return word
return replace
re.sub('python', matchcase('snake'), text, flags=re.IGNORECASE)
'UPPER SNAKE, lower snake, Mixed Snake'
#5.想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。
# strip() 方法能用于删除开始或结尾的字符。
# #lstrip() 和 rstrip() 分别从左和从右执行删除操作
text = 'UPPER SNAKE, lower snake, Mixed Snake'
a = re.sub('python', matchcase('snake'), text, flags=re.IGNORECASE)
print(a)
s = 'a hello world ! a';
l =s.lstrip('a ')
print(l)
r = s.rstrip('a')
print(r)
s1 = s.strip('a')
print(s1)
UPPER SNAKE, lower snake, Mixed Snake
hello world ! a
a hello world !
hello world !