Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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字符串替换标记_Python_Regex_Beautifulsoup - Fatal编程技术网

Python字符串替换标记

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

我正在解析HTML/xml文本,并使用BeautifulSoup从中删除一组标记,如fs、img

我正在分析的文档具有
而不是

所以我想使用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='ಅಂಶ/'>