#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 !