使用正则表达式匿名化 html
Anonymize html with regex
我正在尝试使用正则表达式将 HTML 字符串匿名化,用于 SQL 查询。
https://regex101.com/r/QWt1E1/1
(?<!\<)[^<>\s](?!\>)
<p><em>Hi [User</em></p>
<p><em>Tack för visat intresse.</em></p>
<p><em>Good luck!</em><em> </em></p>
<p><em>Sincerely</em></p>
<p><em>nn nnnnn</nm></p>
<p><em>nnnn nnnnnnnn nnnnn nnnnnnnnn</nm></p>
<p><em>nnnn nnnnn</nm><em>nnnnnn</nm></p>
<p><em>nnnnnnnnn</nm></p>
计划用 n
替换 <> 内的每个字符。
它几乎可以工作,但在我的示例中,它替换了 </em>
中的 e
。不知道为什么以及如何解决这个问题。
如何调整正则表达式以不替换示例中的 e
?
[^<>]*>
而不是 >
的否定前瞻,以确保当前位置后面没有跟在任何其他尖括号之前的 >
(因为那会表明你'当前位于标签内)。
这也意味着您可以放弃回顾:
[^<>\s](?![^<>]*>)
^^^^^^
https://regex101.com/r/QWt1E1/3
不过,如果可能的话,最好使用 HTML 解析器来解析 HTML
我正在尝试使用正则表达式将 HTML 字符串匿名化,用于 SQL 查询。
https://regex101.com/r/QWt1E1/1
(?<!\<)[^<>\s](?!\>)
<p><em>Hi [User</em></p>
<p><em>Tack för visat intresse.</em></p>
<p><em>Good luck!</em><em> </em></p>
<p><em>Sincerely</em></p>
<p><em>nn nnnnn</nm></p>
<p><em>nnnn nnnnnnnn nnnnn nnnnnnnnn</nm></p>
<p><em>nnnn nnnnn</nm><em>nnnnnn</nm></p>
<p><em>nnnnnnnnn</nm></p>
计划用 n
替换 <> 内的每个字符。
它几乎可以工作,但在我的示例中,它替换了 </em>
中的 e
。不知道为什么以及如何解决这个问题。
如何调整正则表达式以不替换示例中的 e
?
[^<>]*>
而不是 >
的否定前瞻,以确保当前位置后面没有跟在任何其他尖括号之前的 >
(因为那会表明你'当前位于标签内)。
这也意味着您可以放弃回顾:
[^<>\s](?![^<>]*>)
^^^^^^
https://regex101.com/r/QWt1E1/3
不过,如果可能的话,最好使用 HTML 解析器来解析 HTML