Javascript 搜索可能包含十六进制字符的单词
我试图使用Python在一个句子中搜索关键字“javascript”,即Javascript 搜索可能包含十六进制字符的单词,javascript,python,hex,Javascript,Python,Hex,我试图使用Python在一个句子中搜索关键字“javascript”,即 data = "I am trying to search javascript in data" 但搜索“javascript”的问题是,可能有一些字符表示为它们的十六进制等价物, 即。, javascript、Jav#61Script、或4A#61#76#53#63#72#69#70#74等等 整个单词可能表示为十六进制,也可能只是其中的一部分。那么我如何才能正确地搜索javascript?听起来你想要一个正则表达式
data = "I am trying to search javascript in data"
但搜索“javascript”的问题是,可能有一些字符表示为它们的十六进制等价物,
即。,
javascript
、Jav#61Script
、或4A#61#76#53#63#72#69#70#74
等等
整个单词可能表示为十六进制,也可能只是其中的一部分。那么我如何才能正确地搜索
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'
如果有一个库或其他东西来处理这种编码方案,可能会有更好的方法,但因为它是我不认识的,所以除了“暴力”之外,我没有什么可推荐的.分享您迄今为止所做的任何编码尝试都会有所帮助。我刚刚写了一篇文章,用正则表达式在pdf文件中搜索关键字,但我发现了如何找到可以用HEX表示的关键字的问题。请参阅我的答案,了解Scott建议的有效实现。对不起,我找不到,您能指导我找到它吗?