已解决:它将文件中的“”符号替换为“(在数据字符串中)”
您知道一种仅搜索 [“ 和 \ n 之间的一个或多个单词(不是数字)的方法吗?
这在regexr.com上有效,但在python中无效
¨
(?<=\[\")(\D+)(?=\\n)
“ S”:[“某物\ n13 / 8-2018 09:00至11:30
¨
Python代码:
re.search('(?<= [\“)(\ D +)(?= \ n)',str(数据))
我认为是\[
,\"
和\\n
的问题,我尝试在python中使用raw
re.search('(?<=\[\")(\D+)(?=\\n)', '"S": ["Something\n13/8-201809:00 to 11:30').group()
这可行,但是我必须使用“ 数据”,因为我有多个字符串,并且不允许我在其上使用 .group()。
错误: AttributeError:'NoneType'对象没有属性'group'
答案 0 :(得分:3)
您的问题是\n
被解释为换行符,而不是原义字符\
和n
。您可以使用更简单的正则表达式\["([\w\s]+)$
和MULTILINE
标志,而无需修改数据。
>>> import re
>>> data = '"S": ["Something\n13/8-201809:00 to 11:30'
>>> pattern = '\["([\w\s]+)$'
>>> m = re.search(pattern, data, re.MULTILINE)
>>> m.group(1)
'Something'
答案 1 :(得分:1)
尝试在带有模式的字符串前放置r,以将字符串标记为“原始”。这将阻止python在将转义的字符传递给函数之前评估转义的字符
re.search(r'\search', string)
或者:
rgx = re.compile(r'pattern')
rgx.search(string)