Last modified: Feb 14, 2023 By Alexander Williams

Python Split By Multiple Characters

To split by multiple characters, You can need to choose between:

  • re.split() method
  • re.findall() method
  • str.split() method

This article will explore how to split by multiple characters using each method.

1. re.split() method

The re module in Python provides a method split, which can be used to split a string based on multiple characters.

Syntax:

re.split(pattern, string, maxsplit=0, flags=0)
  • pattern Is a regular expression.
  • string Is the input string that needs to be split.
  • maxsplit (optional) is the maximum number of splits.
  • flags (optional) is an optional parameter used to modify the behavior of the pattern.

In this example, we'll split a string by multiple characters.

import re

string = "apple,banana;cherry,date" # String

delimiters = "[,;]" # delimiters

result = re.split(delimiters, string) # Split By Multiple Characters

print(result) # Print Result

Output:

['apple', 'banana', 'cherry', 'date']

However, In the above example, we have split the string by , and ; characters as delimiters.

2. str.split method

spilt() is a method used to split a string based on a single character. In the following example, we'll see how to split by multiple characters using this method.

string = "apple,banana;cherry,date" # String

delimiters = ",;" # delimiters

result = ""

for delimiter in delimiters: # Loop through the delimiters
    result = [part.split(delimiter) for part in result] # Split the string using the current delimiter
    result = [item for sublist in result for item in sublist] # Flatten the list of sublists into a single list

print(result) # Print Result

In the above example, we have used the str.split method multiple times to split the string based on each character in the delimiters list. This results in the final list that contains the parts of the string after splitting based on all the characters in the delimiters list.

3. re.findall() method

We can also use the re.findall() method to split a string by multiple characters. Let's see the syntax and the example:

Syntax:

re.findall(pattern, string, flags=0)

Here is an example:

import re

string = "apple,banana;cherry,date"

delimiters = "[,;]"

result = re.split(delimiters, string)

print(result)

Output: ['apple', 'banana', 'cherry', 'date']

Output:

['apple', 'banana', 'cherry', 'date']

As you can see, the example above is simliare to the re.split example. 

Conclusion

In conclusion, splitting a string by multiple characters can be done in Python using the re.split method, the re.findall method, or the str.split method with some modifications.

Each method has its own benefits. For example, when dealing with complex string manipulations, using regular expressions with the re module can be more flexible and efficient.