我有一个字符串,其中包含文本和html标签(仅这样的标签:<a href=""></a>
)。
如何使用“ i”标签修饰“ a”标签之外的文本,避免嵌套标签(例如:<i><a href=""></a></i>
)。
我要实现的目标:
<i>some text</i><a href="link">link text</a><i>another text in the message</i>
“ a”标签外的文字装饰有“ i”标签,而“ a”周围没有“ i”标签。
我在想:
<i>
标记有人能建议我什么更好的方法,因为我认为这不是一个好方法。
更新: 添加了原始字符串示例:
some text<a href="link">link text</a>another text in the message
Michael Butscher 的解决方案对我有效。
答案 0 :(得分:0)
那么,我想您需要更改此问题的描述以使其更加清楚,但是设法弄清楚这一点很棒。我什至可以分叉此步骤,看看是否可以一步完成。这会考虑您已经具有一些<i>
标签的文档。
希望这可行
>>> string = ''' <a href=""></a> <i><a href=""></a></i> '''
>>> def add_i_tags(string):
import re
new_string = re.sub(r'(?<!<i>)(<a)', r'<i>\1', string)
new_string = re.sub(r'(/a>)(?!</i>)', r'\1</i>', new_string)
return new_string
>>> added_to_string = add_i_tags(string)
#Output
>>> print(added_to_string)
<i><a href=""></a></i> <i><a href=""></a></i>