Python字符串替换标记
我正在解析HTML/xml文本,并使用BeautifulSoup从中删除一组标记,如fs、img 我正在分析的文档具有Python字符串替换标记,python,regex,beautifulsoup,Python,Regex,Beautifulsoup,我正在解析HTML/xml文本,并使用BeautifulSoup从中删除一组标记,如fs、img 我正在分析的文档具有而不是 所以我想使用RegEx将所有的转换成。因此,基本上我使用的是以下正则表达式“您可以使用BeautifulSoup删除所有标记: 导入请求 进口bs4 response=requests.get('https://stackoverflow.com/questions/55673916/python-string-replace-html-tags') content=re
而不是
所以我想使用RegEx将所有的
转换成
。因此,基本上我使用的是以下正则表达式“您可以使用BeautifulSoup
删除所有
标记:
导入请求
进口bs4
response=requests.get('https://stackoverflow.com/questions/55673916/python-string-replace-html-tags')
content=response.content
soup=bs4.BeautifulSoup(内容为“html.parser”)
imgs=soup.find_all('img'))
对于img中的img:
img.extract()
#无标签打印
打印(str(汤))
这对我来说适用于
和
标签。所以这需要分步骤解决,因为不清楚你到底想要什么。
我完全陷入了被BS4挫败的人群中,我更喜欢在情境中使用正则表达式,尽管我承认有些人不同意。
如果您只是尝试将结束标记添加到开始标记,并且文档的格式相对一致,根据您的示例,请尝试此操作
>>> import re
>>> string = '''1 (( CCP <fs name='CCP' drel='sent-adv:VGNF'>
1.1 ಹೀಗೆ CC__CCS <fs af='ಹೀಗೆ,avy,,,,d,0,0' name='ಹೀಗೆ'>
))
2 (( NP <fs name='NP' drel='r6:NP2'>
2.1 ಪತ್ರದ N__NN <fs af='ಪತ್ರ,n,,sg,3,o,ಅದ್+ಅ,ax+a' name='ಪತ್ರದ'>
))
3 (( NP <fs name='NP2' drel='k1:VGF'>
3.1 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ'>
3.2 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ2'>
3.3 ಅಂಶ N__NN <fs af='ಅಂಶ,n,,sg,3,d,0,0' name='ಅಂಶ'>'''
>>> print(re.sub(r'(<fs[\S\s]+?\'>)', r'\1</fs>', string))
#Ouput
1 (( CCP <fs name='CCP' drel='sent-adv:VGNF'></fs>
1.1 ಹೀಗೆ CC__CCS <fs af='ಹೀಗೆ,avy,,,,d,0,0' name='ಹೀಗೆ'></fs>
))
2 (( NP <fs name='NP' drel='r6:NP2'></fs>
2.1 ಪತ್ರದ N__NN <fs af='ಪತ್ರ,n,,sg,3,o,ಅದ್+ಅ,ax+a' name='ಪತ್ರದ'></fs>
))
3 (( NP <fs name='NP2' drel='k1:VGF'></fs>
3.1 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ'></fs>
3.2 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ2'></fs>
3.3 ಅಂಶ N__NN <fs af='ಅಂಶ,n,,sg,3,d,0,0' name='ಅಂಶ'></fs>
>>> print(re.sub(r'(<)(fs)(?=[\S\s]+?\'>)', r'\1/\2', string))
#OUTPUT
1 (( CCP </fs name='CCP' drel='sent-adv:VGNF'>
1.1 ಹೀಗೆ CC__CCS </fs af='ಹೀಗೆ,avy,,,,d,0,0' name='ಹೀಗೆ'>
))
2 (( NP </fs name='NP' drel='r6:NP2'>
2.1 ಪತ್ರದ N__NN </fs af='ಪತ್ರ,n,,sg,3,o,ಅದ್+ಅ,ax+a' name='ಪತ್ರದ'>
))
3 (( NP </fs name='NP2' drel='k1:VGF'>
3.1 ಯಾವ DM__DMQ </fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ'>
3.2 ಯಾವ DM__DMQ </fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ2'>
3.3 ಅಂಶ N__NN </fs af='ಅಂಶ,n,,sg,3,d,0,0' name='ಅಂಶ'>
>>重新导入
>>>字符串='''1((CCP
1.1ಹೀಗೆ CC_uuCCS
))
2((NP)
2.1ಪತ್ರದ N_unn
))
3((NP)
3.1ಯಾವ DM_uuDMQ
3.2ಯಾವ DM_uuDMQ
3.3ಅಂಶ N__NN''
>>>例如:印刷品,印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品印刷品(试着用
替换
。我所做的是有效的,那么你的问题是什么呢?1.在HTML中,与现在广泛使用的XHTML不同,你不需要结束标记。2.不要尝试用正则表达式解析HTML。我想要一种更有效的方法,类似于img,还有更多的标记,如fs等,但bs最终添加了自己的终止符。那么,为什么呢n你提取的大部分信息都丢失了,我会支持你的答案,但这不是我想要的解决方案
>>> import re
>>> string = '''1 (( CCP <fs name='CCP' drel='sent-adv:VGNF'>
1.1 ಹೀಗೆ CC__CCS <fs af='ಹೀಗೆ,avy,,,,d,0,0' name='ಹೀಗೆ'>
))
2 (( NP <fs name='NP' drel='r6:NP2'>
2.1 ಪತ್ರದ N__NN <fs af='ಪತ್ರ,n,,sg,3,o,ಅದ್+ಅ,ax+a' name='ಪತ್ರದ'>
))
3 (( NP <fs name='NP2' drel='k1:VGF'>
3.1 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ'>
3.2 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ2'>
3.3 ಅಂಶ N__NN <fs af='ಅಂಶ,n,,sg,3,d,0,0' name='ಅಂಶ'>'''
>>> print(re.sub(r'(<fs[\S\s]+?\'>)', r'\1</fs>', string))
#Ouput
1 (( CCP <fs name='CCP' drel='sent-adv:VGNF'></fs>
1.1 ಹೀಗೆ CC__CCS <fs af='ಹೀಗೆ,avy,,,,d,0,0' name='ಹೀಗೆ'></fs>
))
2 (( NP <fs name='NP' drel='r6:NP2'></fs>
2.1 ಪತ್ರದ N__NN <fs af='ಪತ್ರ,n,,sg,3,o,ಅದ್+ಅ,ax+a' name='ಪತ್ರದ'></fs>
))
3 (( NP <fs name='NP2' drel='k1:VGF'></fs>
3.1 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ'></fs>
3.2 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ2'></fs>
3.3 ಅಂಶ N__NN <fs af='ಅಂಶ,n,,sg,3,d,0,0' name='ಅಂಶ'></fs>
>>> print(re.sub(r'(<fs[\S\s]+?\'>)', r'</fs>', string))
#OUTPUT
1 (( CCP </fs>
1.1 ಹೀಗೆ CC__CCS </fs>
))
2 (( NP </fs>
2.1 ಪತ್ರದ N__NN </fs>
))
3 (( NP </fs>
3.1 ಯಾವ DM__DMQ </fs>
3.2 ಯಾವ DM__DMQ </fs>
3.3 ಅಂಶ N__NN </fs>
>>> print(re.sub(r'(<)(fs)(?=[\S\s]+?\'>)', r'\1/\2', string))
#OUTPUT
1 (( CCP </fs name='CCP' drel='sent-adv:VGNF'>
1.1 ಹೀಗೆ CC__CCS </fs af='ಹೀಗೆ,avy,,,,d,0,0' name='ಹೀಗೆ'>
))
2 (( NP </fs name='NP' drel='r6:NP2'>
2.1 ಪತ್ರದ N__NN </fs af='ಪತ್ರ,n,,sg,3,o,ಅದ್+ಅ,ax+a' name='ಪತ್ರದ'>
))
3 (( NP </fs name='NP2' drel='k1:VGF'>
3.1 ಯಾವ DM__DMQ </fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ'>
3.2 ಯಾವ DM__DMQ </fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ2'>
3.3 ಅಂಶ N__NN </fs af='ಅಂಶ,n,,sg,3,d,0,0' name='ಅಂಶ'>
>>> print(re.sub(r'(<fs[\S\s]+?)(\'>)', r'\1/\2', string))
#OUTPUT
1 (( CCP <fs name='CCP' drel='sent-adv:VGNF/'>
1.1 ಹೀಗೆ CC__CCS <fs af='ಹೀಗೆ,avy,,,,d,0,0' name='ಹೀಗೆ/'>
))
2 (( NP <fs name='NP' drel='r6:NP2/'>
2.1 ಪತ್ರದ N__NN <fs af='ಪತ್ರ,n,,sg,3,o,ಅದ್+ಅ,ax+a' name='ಪತ್ರದ/'>
))
3 (( NP <fs name='NP2' drel='k1:VGF/'>
3.1 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ/'>
3.2 ಯಾವ DM__DMQ <fs af='ಯಾವ,pn,,,,d,0,0' name='ಯಾವ2/'>
3.3 ಅಂಶ N__NN <fs af='ಅಂಶ,n,,sg,3,d,0,0' name='ಅಂಶ/'>