在Python中,可以使用 re 模块的 split() 函数来根据正则表达式切分字符串。 这个函数接受两个主要参数:第一个参数是正则表达式模式,第二个参数是要切分的字符串。 此外,还有一个可选的maxsplit参数,用于指定最大切分数,默认是0,表示不限制切分次数。
In [2]:
import re
line = 'aaa bbb ccc;ddd eee,fff'
line
Out[2]:
'aaa bbb ccc;ddd eee,fff'
单字符切割。
In [3]:
re.split(r';',line)
Out[3]:
['aaa bbb ccc', 'ddd eee,fff']
两个字符以上切割需要放在 [ ] 中。
In [4]:
re.split(r'[;,]',line)
Out[4]:
['aaa bbb ccc', 'ddd eee', 'fff']
所有空白字符切割。
In [5]:
re.split(r'[;,\s]',line)
Out[5]:
['aaa', 'bbb', 'ccc', 'ddd', '', '', 'eee', 'fff']
使用括号捕获分组,默认保留分割符。
In [6]:
re.split(r'([;])',line)
Out[6]:
['aaa bbb ccc', ';', 'ddd eee,fff']
不想保留分隔符,以(?:...)的形式指定。
In [7]:
re.split(r'(?:[;])',line)
Out[7]:
['aaa bbb ccc', 'ddd eee,fff']
In [8]:
cnt = """locale_dirs = ['locale/']"""
In [9]:
locale_name = re.split('''\'|\"''', cnt.strip())[1].strip('/')
In [10]:
locale_name
Out[10]:
'locale'
In [11]:
cnt2 = """locale_dirs = ['locale/']"""
In [12]:
locale_name = re.split('''\'|\"''', cnt2.strip())[1].strip('/')
In [13]:
locale_name
Out[13]:
'locale'
In [14]:
def processString6(txt):
dictionary = {
"a": "A",
"e": "E",
"i": "I",
"o": "O",
"u": "U",
"狮身人面像": 'Sphinx',
"斯芬克斯": 'Sphinx',
}
for key in dictionary:
txt = txt.replace(key, dictionary[key])
print(txt)
In [15]:
txt = '''
获得支持
为狮身人面像做贡献
对狮身人面像的贡献
斯芬克斯的释放过程
组织狮身人面像项目
狮身人面像行为准则
'''
In [16]:
processString6(txt)
获得支持 为Sphinx做贡献 对Sphinx的贡献 Sphinx的释放过程 组织Sphinx项目 Sphinx行为准则
In [17]:
from pathlib import Path
Path('xx_text.txt').write_text(txt)
Out[17]:
56