特定模式的正则表达式

时间:2017-04-22 15:56:02

标签: python regex string

所以我出现了以\u开头的字符串,后跟各种形式的4字符十六进制(它们不是unicode对象,而是数据中的实际字符串,这就是为什么我要清理它数据),并希望用空格替换这些事件。

示例文本文件:Hello \u2022 Created, reviewed, \u00e9executed and maintained

例如:会出现字符串\u2022\u00e9,我希望找到\u并将其与4个字符的子字符串一起删除之后跟随202200e9。我正在为这种模式寻找足够的正则表达式。

示例代码:

import json
import io
import re

files = glob('Candidate Profile Data/*')

for file_ in files:
    with io.open(file_, 'r', encoding='us-ascii') as json_file:
        json_data = json_file.read().decode()
        json_data = re.sub('[^\x00-\x7F]+',' ',json_data)
        json_data = json_data.replace('\\n',' ')
        json_data = re.sub(r'\\u[0-9a-f]{,4}',' ',json_data)

        print json_data
        json_data = json.loads(json_data)
        print(json_data)

1 个答案:

答案 0 :(得分:2)

真的,我们需要一个代码示例,但作为指针,我认为你需要的正则表达式就像r'\\u[0-9a-f]{,4}'

以下是使用中的示例:

>>> import re
>>> my_string='Hello \\u2022 Created, reviewed, \\u00e9executed and maintained'
>>> my_string
'Hello \\u2022 Created, reviewed, \\u00e9executed and maintained'
>>> re.sub(r'\\u[0-9a-f]{,4}',"",my_string)
'Hello  Created, reviewed, executed and maintained'

仍然希望看到您的CODE示例,以便我们提供更准确的答案