📜  Python|字符串中的异常拆分

📅  最后修改于: 2022-05-13 01:55:36.118000             🧑  作者: Mango

Python|字符串中的异常拆分

有时,在使用字符串时,我们可能需要执行拆分操作。直接拆分很容易。但有时,我们可能会遇到需要对某些字符执行拆分但有例外的问题。这讨论了逗号分割,但逗号不应被括号括起来。让我们讨论可以执行此任务的某些方式。

方法 #1:使用循环 + strip()
这是我们执行此任务的蛮力方式。在此,我们将列表的每个元素构造为字符串中的单词,并使用括号和逗号来执行拆分。

# Python3 code to demonstrate working of 
# Exceptional Split in String
# Using loop + split()
  
# initializing string
test_str = "gfg, is, (best, for), geeks"
  
# printing original string
print("The original string is : " + test_str)
  
# Exceptional Split in String
# Using loop + split()
temp = ''
res = []
check = 0
for ele in test_str:
    if ele == '(':
        check += 1
    elif ele == ')':
        check -= 1
    if ele == ', ' and check == 0:
        if temp.strip():
            res.append(temp)
        temp = ''
    else:
        temp += ele
if temp.strip():
    res.append(temp)
  
# printing result 
print("The string after exceptional split : " + str(res)) 
输出 :
The original string is : gfg, is, (best, for), geeks
The string after exceptional split : ['gfg', ' is', ' (best, for)', ' geeks']

方法 #2:使用regex()
这是可以执行此任务的另一种方式。在此,我们对括号逗号使用正则表达式而不是手动蛮力逻辑,并从拆分中省略它。

# Python3 code to demonstrate working of 
# Exceptional Split in String
# Using regex()
import re
  
# initializing string
test_str = "gfg, is, (best, for), geeks"
  
# printing original string
print("The original string is : " + test_str)
  
# Exceptional Split in String
# Using regex()
res = re.split(r', (?!\S\)|\()', test_str)
  
# printing result 
print("The string after exceptional split : " + str(res)) 
输出 :
The original string is : gfg, is, (best, for), geeks
The string after exceptional split : ['gfg', ' is', ' (best, for)', ' geeks']