I'm studying the string in Python and I want to split a string using multiple separators. For this reason I saw the re.split()
method, but I don't understand the parameter called "pattern".
Asked
Active
Viewed 420 times
-1

Alessio Vinaccia
- 11
- 1
- 5
-
4I assume you've looked at http://docs.python.org/2/library/re.html#re.split? The pattern is a regular expression defining the characters you want to split on. – Christian Ternus Oct 16 '13 at 19:12
-
possible duplicate of [Python strings split with multiple separators](http://stackoverflow.com/questions/1059559/python-strings-split-with-multiple-separators) – Christian Ternus Oct 16 '13 at 19:13
-
Yes I did, but in this case for example:re.split('[a-f]+', '0a3B9', flags=re.IGNORECASE). What is "[a-f]+"? – Alessio Vinaccia Oct 16 '13 at 19:17
-
@AlessioVinaccia `[a-f]` means *all letters from a to f* and `+` means *at least one*. It's a regular expression. So anything matched by that pattern will be treated as a separator. In your case `a` and `B` matches it (because of `IGNORECASE`, normally it is case sensitive) thus it will produce `['0','3','9']`. – freakish Oct 16 '13 at 19:17
2 Answers
0
pattern
is the Regular Expression you want to base the splits off of. See below:
>>> import re
>>> help(re.split)
Help on function split in module re:
split(pattern, string, maxsplit=0, flags=0)
Split the source string by the occurrences of the pattern,
returning a list containing the resulting substrings.
>>>
Here is a good reference on Regular Expressions.
0
>>> s='thing 1,obj 2;name 3:you get the picture'
>>> re.split(r',|;|:',s)
['thing 1', 'obj 2', 'name 3', 'you get the picture']

dawg
- 98,345
- 23
- 131
- 206
-
-
@AlessioVinaccia - The `r` makes the string a raw string, which doesn't process escape sequences. Those are handy with regular expressions (note however that it is not _needed_ here). – Oct 16 '13 at 19:45
-
The `r` means 'raw'. It is commonly used with regex patterns. It is a different way of describing a string literal. – dawg Oct 16 '13 at 19:45
-