我需要从字符串中提取字符模式,并将字符串用作文件名
问题: 有问题的字符串是
Algoxasx(AGC)Tomcat空灵(BAA)大胖(BGI)大王府(BAU)MEP Ezay(EYI)东边界(EYUS)Sasha Banks(ME)大峡谷(GCP).... >
背景: 上面的字符串是通过使用Beautiful Soup与Python一起解析网站而获得的-通过使用类和属性以及html解析器,这是一个更容易的部分。请原谅,该代码无法完整发布,因为这是我学校的研究项目,拥有代码的版权
目标: 我想从上面的字符串(AGC),(BGI),(BAU),(EYI)中剥离出来。。。仅提取Algoxasx Tomcat BIG Fat Big King Locattion等。我想稍后在这些提取的名称中使用例如,如果下载了文件,则使用单独的方式将其用作文件名来存储文件。
到目前为止我尝试过的是: 我使用正则表达式将上面的(AGC),(BAA),(BGI)剥离为列表,并使用了replace方法(用空白替换)和strip方法以及regex来提取不带大写字母的括号的字符串。尝试使用拆分方法,但它拆分单个字母而不是单词
data1=required_data.find(class_='dropdown-menu select-pipe-dropdown-
menu',attrs={'id':'dropdown'}).get_text
r2=re.findall(r'\([^\)]*[A-Z]{2}[^\)]*\)',data1)
w=data1.replace(r2,'')
print(w)
data1方法包含整个字符串Algoxasx(AGC)Tomcat空灵(BAA)BIG脂肪(BGI)大王位置(BAU)MEP Ezay(EYI)东边界(EYUS)Sasha Banks(ME)大峡谷(GCP) )
r2变量提取(AGC),(BGI),(BAU),(EYI)作为列表
预期结果1: Algoxasx Tomcat虚无心大胖子大国王位置MEP Ezay东边界线Sasha Banks大峡谷
预期结果2: 单独将上述字符串分开,以便我可以在for循环中分别使用它们,例如Algoxasx,Tomcat空灵,BIG Fat,Big King位置,MEP Ezay East Borderline,Sasha Banks,大峡谷
答案 0 :(得分:0)
使用re.split()
,您可以根据正则表达式规则分割字符串:
s = '''
Algoxasx (AGC)Tomcat Empty Mind (BAA)BIG Fat (BGI)Big King Location (BAU)MEP Ezay (EYI)East Borderline (EYUS)Sasha Banks (ME)Grand Canyon (GCP)
'''
import re
from pprint import pprint
data = [d.strip() for d in re.split(r'\([A-Z]{2,}\)', s) if d.strip()]
pprint(data)
打印:
['Algoxasx',
'Tomcat Empty Mind',
'BIG Fat',
'Big King Location',
'MEP Ezay',
'East Borderline',
'Sasha Banks',
'Grand Canyon']