我将此字符串传递给Text_Diff ...
b'\x00\x00\x00\x020TRCK\x00\x00\x00\x06\x00\x00\x033936\x00TDEN\x00\x00\x00\x15\x00\x00\x032016-09-30T02:01:11\x00TDTG\x00\x00\x00\x15\x00\x00\x032016-09-30T02:01:18\x00TOFN\x00\x00\x00\x1a\x00\x00\x03index-0000003936-tI2q.ts\x00TSSE\x00\x00\x00\x15\x00\x00\x03libavtwitch: 730c86\x00TXXX\x00\x00\x01\x15\x00\x00\x03segmentmetadata\x00{"broadc_s":1,"cmd":"ld_lat_data","ingest_r":2,"ingest_s":3,"stream_offset":15624,"transc_r":1475200871542,"transc_s":1475200878899}\xbd\x00\x00\x00\x01\xce\x8cM\x9d\x10\x8e%\xe9\xfe'
只有两种可能的标签:del和ins。如果它们不在标签内,我不会删除这些标签。但是当它们属于内部属性时需要删除它们。
答案 0 :(得分:1)
您可以使用以下正则表达式来搜索:
(?<=style=)([\w\W]+)(?:<ins>|<del>)([\w\W\s]+)(?:<\/ins>|<\/del>)([\w\W]*)(?=">)
属性的值是与后向链接匹配的文本:
([\w\W]+) == $1
([\w\W\s]+) == $2
([\w\W]*) == $3
然后,此组合将为您提供属性所需的值:
$1$2$3
对于此输入字符串:
<div class="class1" style="display:block;">Some Text<del> Orig</del></div>
您将得到结果:
<div class="class1" style="display:block;">Some Text<del> Orig</del></div>
对于此输入字符串:
<div class="class1" style="<ins>color:#FFF;</ins>;display:block;">Some Text</div>
您将得到结果:
<div class="class1" style="color:#FFF;;display:block;">Some Text</div>
对于此输入字符串:
<div class="class1" style=";display:block;<ins>color:#FFF;</ins>">Some Text</div>
您将得到结果:
<div class="class1" style=";display:block;color:#FFF;">Some Text</div>
在此处查看演示:https://regex101.com/r/3XKv5s/1
对于任何属性,不仅style
:
(?<=[a-zA-Z]=")([\w\W]*)(?:<ins>|<del>)([\w\W\s]*)(?:<\/ins>|<\/del>)([\w\W]*)(?=">)
在此处查看演示:https://regex101.com/r/3XKv5s/2