0%

python正则分割字符串忽略括号

python正则分割字符串忽略括号

业务中需要以分割字符串,但是实际情况中有的数据是在()中的 不希望括号中的 被分割 思路是用正则匹配分割
研究半天发现正则实现不了,最后先分割 然后在拼接

代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
# encoding=utf-8
import re

content = "广阳区、安次区、香河县(淑阳镇、渠口镇、钱旺镇、钳屯镇、安头屯镇、刘宋镇、五百户镇)、大厂县(祁各庄镇、夏垫镇)"
data = []
middle = ""
flag = False
result = re.split("、", content)
#print(result)
for i in result:
if ("(" in i or flag) and ")" not in i:
middle = middle + ("" if flag == False else "、") + i
flag = True
elif ")" in i:
middle = middle + "、" + i
data.append(middle)
flag = False
middle = ""
else:
data.append(i)
print(data)

得到的数据为

1
['广阳区、安次区、永清县、香河县(淑阳镇、渠口镇、钱旺镇、钳屯镇、安头屯镇、刘宋镇、五百户镇)、大厂县(祁各庄镇、夏垫镇)']