Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在Python中使用正则表达式从大字符串中剥离_Python 3.x_Web Scraping_Beautifulsoup - Fatal编程技术网

Python 3.x 在Python中使用正则表达式从大字符串中剥离

Python 3.x 在Python中使用正则表达式从大字符串中剥离,python-3.x,web-scraping,beautifulsoup,Python 3.x,Web Scraping,Beautifulsoup,我需要从字符串中提取一个字符模式,并将该字符串用作文件名 问题: 有问题的字符串是 Algoxasx(AGC)雄猫空心(BAA)大胖子(BGI)大王位置(BAU)MEP Ezay(EYI)东边界(EYUS)萨沙班克斯(ME)大峡谷(GCP) 背景: 上面的字符串是通过使用Beautiful Soup解析网站以及Python得到的,Python使用类和属性以及html解析器是一个更容易的部分。请原谅,代码不能全部发布,因为它是我学校的一个研究项目,拥有代码的版权 目标: 我想去掉上面的字符串(AG

我需要从字符串中提取一个字符模式,并将该字符串用作文件名

问题: 有问题的字符串是

Algoxasx(AGC)雄猫空心(BAA)大胖子(BGI)大王位置(BAU)MEP Ezay(EYI)东边界(EYUS)萨沙班克斯(ME)大峡谷(GCP)

背景: 上面的字符串是通过使用Beautiful Soup解析网站以及Python得到的,Python使用类和属性以及html解析器是一个更容易的部分。请原谅,代码不能全部发布,因为它是我学校的一个研究项目,拥有代码的版权

目标: 我想去掉上面的字符串(AGC),(BGI),(BAU),(EYI)。。。。并且只提取Algoxasx Tomcat BIG-Fat BIG King Locatdion等。我想稍后以单独的方式使用这些提取的名称,比如说,如果下载了一个文件,将它们用作文件名来存储文件

到目前为止,我一直在尝试: 我使用正则表达式将上面(AGC)、(BAA)、(BGI)的strip作为一个列表,并使用replace方法(用空格替换)和strip方法以及正则表达式来提取字符串,而不包含大写字母。我还尝试使用split方法,但它拆分单个字母而不是单词

 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 Empty Mind(BAA)BIG Fat(BGI)BIG King Location(BAU)MEP Ezay(EYI)East Borderline(EYUS)Sasha Banks(ME)Grand Canyon(GCP)

r2变量提取(AGC)、(BGI)、(BAU)、(EYI)作为列表

预期结果1: Algoxasx雄猫空心大胖大王位置MEP Ezay东边界萨沙班克斯大峡谷

预期结果2: 单独分离上面的字符串,以便我可以在for循环中单独使用它们,例如Algoxasx、Tomcat Empty Mind、BIG Fat、BIG King Location、MEP Ezay East Borderline、Sasha Banks、Grand Canyon

使用
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']

美好的谢谢你。什么是pprint?为什么需要它?@Akshay
pprint
代表漂亮的打印。您可以使用标准的
打印
。此处仅用于在nice列中打印值。