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

时间:2014-04-11 20:27:31

标签: javascript python hex

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

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

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

整个单词可能表示为十六进制,或者只是其中的一部分。那么我该如何正确搜索javascript

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

它不漂亮。效率不高。但它确实有效。

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

如果有一个库或处理这种编码方案的东西,可能有更好的方法,但因为它是我不认识它所以我没有什么可推荐但是"暴力"。