Если вы ищете список этих атрибутов, XPath будет вашим другом
print_r($xml->xpath('@token'));
Вы можете использовать re.sub
:
import re
def href(d, skip = ['.png', '.gif', '.jpg', '.jpeg']):
return f'<a href="{d}">{d}</a>' if not re.findall('|'.join(skip), d) else d
s = """
La-la-la https://example.com/ https://example.com/
https://example.com/ la-la-la https://example.com/
la-la-la https://example.com/ la-la-la
"""
new_s = re.sub('https*://.*?(?=[\s$])', lambda x:href(x.group()), s)
Выход:
La-la-la <a href="https://example.com/">https://example.com/</a> <a href="https://example.com/">https://example.com/</a> <a href="https://example.com/">https://example.com/</a> la-la-la <a href="https://example.com/">https://example.com/</a> la-la-la <a href="https://example.com/">https://example.com/</a> la-la-la
`badtags = ['.png', '.gif', 'jpg', 'jpeg']
goodurls = ['https://', 'http://']
for line in string:
for word in line.strip().split():
if(word[0:7] == 'https://' or word[0:6] == 'http://'):
if(not word[-4:] in badtags):
// replace logic
`
Это довольно простой способ сделать это, вам, возможно, придется использовать обычный цикл итерации для цикла, чтобы иметь возможность индексировать ваш исходный массив.
sub
возможна. TIL, спасибо! – Andrej Kesely 13 July 2018 в 17:25f-strings
. – Ajax1234 13 July 2018 в 17:27