正则表达式:提取由“”包围的27个长字符子字符串

时间:2019-06-28 11:44:36

标签: python regex

我正在尝试使用DpIJr_dR-DNu5kcR9RGmRprcnGU从以下文本中提取一个27个字符长的子字符串regex

  

text ='[[\\ jewelry_designer \“] \ n,[\” watch_store \“] \ n,[\” jewelry_appraiser \“] \ n,[\” leather_goods_store \“] \ n] \ n, null,\“ DpIJr_dR-DNu5kcR9RGmRprcnGU \”,null,null,null,[null]'

到目前为止,我用以下命令隔离了由\"包围的字符串

pattern = '\\"(.*?)\\"'
output = re.findall(pattern, text)
### output => ['jewelry_designer', 'watch_store', 'jewelry_appraiser', 'leather_goods_store', 'DpIJr_dR-DNu5kcR9RGmRprcnGU']

下一步是在输出中添加长度限制,因此它只能匹配27个字符长的子字符串。

我尝试了\\"(.*?){27}\\"\\"(.*?{27})\\",但没有成功。我可以做[x for x in output if len(x) == 27],但这很可惜。

1 个答案:

答案 0 :(得分:1)

尝试这个:

\\\"([^\"]{27})\\\"

Demo

您首先将\"\\\"进行匹配,然后匹配并捕获您对[^\"]{27}感兴趣的字符串(除了重复引用27次以外的任何内容),然后再次\"\\\"