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

2024-05-15 15:56:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Python在一个句子中搜索关键字“javascript”,即

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

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

整个单词可以用十六进制来表示,也可以只用其中的一部分。那么,如何正确地搜索javascript?你知道吗


Tags: toinsearchdata关键字javascriptam字符
2条回答

听起来您需要一个正则表达式,其中每个连续字符可以是字母(两种情况都可以?)或者是十六进制表示法。你知道吗

不太好看。效率不高。但它是有效的。你知道吗

>>> 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'

如果有一个库或什么东西来处理这个编码方案,可能会有更好的方法,但因为它是我不认识它,所以我没有什么建议,但“暴力”。你知道吗

相关问题 更多 >