Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式中转义字符后的字符串_Python_Regex - Fatal编程技术网

Python 正则表达式中转义字符后的字符串

Python 正则表达式中转义字符后的字符串,python,regex,Python,Regex,我在Python中使用正则表达式。我试图提取两个变量之间的所有数据,它以{justin_h开头,以}个包含的特殊字符结尾,但是我在正则表达式语法方面遇到了问题 我一直在使用: [{]["][justin_h...["][}] 它不会返回任何结果。事实上,我知道它就在那里,[{][]返回结果,但当我启动字符串时,它似乎不起作用。我哪里出错了?使用捕获组或查找 r'\{"justin_h(.*?)"}' 从组索引1中获取所需的字符串。如果要获取的部分包含换行符,则该字符串无效。在这种情况下,需要

我在Python中使用正则表达式。我试图提取两个变量之间的所有数据,它以{justin_h开头,以}个包含的特殊字符结尾,但是我在正则表达式语法方面遇到了问题

我一直在使用:

[{]["][justin_h...["][}]

它不会返回任何结果。事实上,我知道它就在那里,[{][]返回结果,但当我启动字符串时,它似乎不起作用。我哪里出错了?

使用捕获组或查找

r'\{"justin_h(.*?)"}'
从组索引1中获取所需的字符串。如果要获取的部分包含换行符,则该字符串无效。在这种情况下,需要使用?s DOTALL标志

r'(?s)\{"justin_h(.*?)"}'
例如:

>>> re.findall(r'\{"justin_h(.*?)"}', 'foo{"justin_hfoobar"}barfoo')
['foobar']

若要匹配{或任何其他特殊字符,您可以使用\{。另外,请确保您使用的是原始字符串,即r'blabla'而不是'blabla'。如果您提供精确的匹配文本片段和预期结果,那就太好了。我也使用[]阅读过它,但使用\修改正则表达式仍然不会返回任何结果。@user5061:您也可以使用[{]在许多语言的正则表达式实现中。@ajh:The…将正好匹配3个字符-这是您想要的吗?匹配您想要的任何字符序列。*相反,您是对的,我的意思是它更易于阅读。我需要转义最后一个}在正则表达式的结尾?Hmmm,它似乎仍然没有返回任何结果:/,这在Python中有效吗?抱歉,这是一个编码错误,我的结束,它确实有效,谢谢:。但是,我希望它包含搜索结果,对我来说,它返回这两个变量之间的所有数据非包容性,我如何调整它以将搜索到的数据也包含在我的结果中然后从正则表达式中删除捕获组,如r'\{justin\u h.*.}