搜索可能包含十六进制字符的单词

Search for word that may have hex characters

本文关键字:字符 单词 十六进制 包含 搜索      更新时间:2023-09-26

我正试图使用Python在句子中搜索关键字"javascript",即

data = "I am trying to search javascript in data"

但搜索"javascript"的问题是,可能有一些字符被表示为它们的十六进制等价物,即。,javascriptJav#61Script4A#61#76#61#53#63#72#69#70#74等等

整个单词is可能被表示为十六进制,也可能只是它的一部分。那么我如何才能正确地搜索javascript呢?

听起来像是想要一个正则表达式,其中每个连续字符可以是字母(大小写?)或十六进制表示。

它并不漂亮。它效率不高。但它是有效的。

>>> import re
>>> regex = re.compile(r'#[0-9A-F]+')
>>> 
>>> test_string = '#4A#61#76#61#53#63#72#69#70#74'
>>> for hex_string in re.findall(regex, test_string):
...   test_string = test_string.replace(hex_string, chr(int(hex_string.replace('#', ''), 16)))
... 
>>> test_string
'JavaScript'

如果有一个库或其他东西来处理这种编码方案,可能会有更好的方法,但事实上我不认识它,所以我没有什么可推荐的,只有"蛮力"。