Home > Backend Development > Python Tutorial > Python cookbook (String and Text) splits string operations for any number of delimiters

Python cookbook (String and Text) splits string operations for any number of delimiters

不言
Release: 2018-04-19 13:40:37
Original
1575 people have browsed it

This article mainly introduces the Python cookbook (string and text) to split the string operation for any number of delimiters, and analyzes the use of split() and regular expressions in Python to split the string using examples. For implementation tips, friends in need can refer to

. The example in this article describes Python's string splitting operation for any number of delimiters. Share it with everyone for your reference, the details are as follows:

Question: Split strings with inconsistent delimiters (and spaces between delimiters) into different fields;

Solution: Use the more flexible re.split() method, which can specify multiple patterns for the delimiter.

Note: The split() of the string object can only handle simple situations, and does not support multiple delimiters, and it cannot do anything about the spaces that may exist around the delimiters.

# example.py
#
# Example of splitting a string on multiple delimiters using a regex
import re #导入正则表达式模块
line = 'asdf fjdk; afed, fjek,asdf,   foo'
# (a) Splitting on space, comma, and semicolon
parts = re.split(r'[;,\s]\s*', line)
print(parts)
# (b) 正则表达式模式中使用“捕获组”,需注意捕获组是否包含在括号中,使用捕获组导致匹配的文本也包含在最终结果中
fields = re.split(r'(;|,|\s)\s*', line)
print(fields)
# (c) 根据上文的分隔字符改进字符串的输出
values = fields[::2]
delimiters = fields[1::2]
delimiters.append('')
print('value =', values)
print('delimiters =', delimiters)
newline = ''.join(v+d for v,d in zip(values, delimiters))
print('newline =', newline)
# (d) 使用非捕获组(?:...)的形式实现用括号对正则表达式模式分组,且不输出分隔符
parts = re.split(r'(?:,|;|\s)\s*', line)
print(parts)
Copy after login

>>> ================================ RESTART ================================
>>>
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
['asdf', ' ', 'fjdk', ';', 'afed', ',', 'fjek', ',', 'asdf', ',', 'foo']
value = ['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
delimiters = [' ', ';', ',', ',', ',', '']
newline = asdf fjdk;afed,fjek,asdf,foo
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
>>>
Copy after login

(Code is excerpted from "Python Cookbook")

Related recommendations:

PythonCookbook - Data Structures and Algorithms

The above is the detailed content of Python cookbook (String and Text) splits string operations for any number of delimiters. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template