【问题标题】:Search for word that may have hex characters搜索可能包含十六进制字符的单词
【发布时间】:2014-05-26 03:54:45
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这将有助于分享您迄今为止所做的任何编码尝试
  • 我刚刚写了使用正则表达式在pdf文件中搜索关键字,但是我发现了如何找到可以用十六进制表示的关键字的问题
  • 查看我对 Scott 建议的有效实施的回答。
  • 对不起,我找不到,你能指导我吗?

标签: javascript python hex


【解决方案1】:

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

【讨论】:

    【解决方案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'
    

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

    【讨论】:

      猜你喜欢
      • 2016-04-09
      • 1970-01-01
      • 2023-04-08
      • 2019-12-26
      • 2014-10-07
      • 2014-03-26
      • 2018-06-16
      • 2012-06-05
      • 1970-01-01
      相关资源
      最近更新 更多