>>> from env_helper import info; info()
页面更新时间: 2024-04-07 08:16:16
运行环境:
    Linux发行版本: Debian GNU/Linux 12 (bookworm)
    操作系统内核: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36
    Python版本: 3.11.2

1.6. 使用正则表达式切分字符串

re.split()切割功能非常强大

>>> import re
>>> line = 'aaa bbb ccc;ddd   eee,fff'
>>> line
'aaa bbb ccc;ddd   eee,fff'

单字符切割

>>> re.split(r';',line)
['aaa bbb ccc', 'ddd   eee,fff']

两个字符以上切割需要放在 [ ] 中

>>> re.split(r'[;,]',line)
['aaa bbb ccc', 'ddd   eee', 'fff']

所有空白字符切割

>>> re.split(r'[;,\s]',line)
['aaa', 'bbb', 'ccc', 'ddd', '', '', 'eee', 'fff']

使用括号捕获分组,默认保留分割符

>>> re.split(r'([;])',line)
['aaa bbb ccc', ';', 'ddd   eee,fff']

不想保留分隔符,以(?:…)的形式指定

>>> re.split(r'(?:[;])',line)
['aaa bbb ccc', 'ddd   eee,fff']
>>> cnt = """locale_dirs = ['locale/']"""
>>> locale_name = re.split('''\'|\"''', cnt.strip())[1].strip('/')
>>> locale_name
'locale'
>>> cnt2 = """locale_dirs = ['locale/']"""
>>> locale_name = re.split('''\'|\"''', cnt2.strip())[1].strip('/')
>>> locale_name
'locale'
>>> 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)
>>> txt = '''
>>> 获得支持
>>> 为狮身人面像做贡献
>>> 对狮身人面像的贡献
>>> 斯芬克斯的释放过程
>>> 组织狮身人面像项目
>>> 狮身人面像行为准则
>>> '''
>>> processString6(txt)
获得支持
为Sphinx做贡献
对Sphinx的贡献
Sphinx的释放过程
组织Sphinx项目
Sphinx行为准则
>>> from pathlib import Path
>>> Path('xx_text.txt').write_text(txt)
56