gpt4 book ai didi

python - 如何在 Python 中使用列表/数组进行字符串替换?

转载 作者:行者123 更新时间:2023-11-28 18:00:12 25 4
gpt4 key购买 nike

我希望在 HTML 文档中替换以下输入和所需的输出,可能使用正则表达式或字符串替换。

if :
input: '<b>º </b>'
output: ['º']

input: '<b>Nº </b>'
output: []

input: '<b>1º </b>'
output: []

input: '<b>1ª </b>'
output: []

input: '<p>N<u>º </u></p>'
output: ['º']

尝试

l = [ ('<b>º </b>', ['º']), ('<b>Nº </b>', [])]

result = None
for i in l:
codigo = re.sub(r'<(b|sup|s|u)>\s*[oº]\s*</(b|sup|s|u)>', 'º ', i[0], re.I)
soup = BeautifulSoup(codigo, 'html.parser')
result = soup.find_all('b', string='º')
assert str(result) == l[1], "ops.."

我该如何解决这个问题?

最佳答案

我会尝试这样做:首先,将您的输入添加到列表中:

codi = ['<b>º </b>' ,'<b>Nº </b>' ,'<b>1º </b>', '<b>1ª </b>','<p>N<u>º </u></p>'  ]

然后用BS处理列表:

for i in codi:
soup = bs(i,'html.parser')
print('input:',i)
targets = soup.select('*:contains(º)')
for target in targets:
if target.text.strip() == 'º':
print('output:',target.text.strip())
print('--------------')

输出:

input: <b>º </b>
output º
--------------
input: <b>Nº </b>
--------------
input: <b>1º </b>
--------------
input: <b>1ª </b>
--------------
input: <p>N<u>º </u></p>
output º
--------------

该方法的功劳:来自@QHarr 的众多答案 - soup.select() 之王。

关于python - 如何在 Python 中使用列表/数组进行字符串替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com