我有一个长字符串,是从使用python的webscraping中获得的。我希望能够以类似{'XXXXXXXX':'AAAAAAAA','YYYYYYYY':'BBBBBBBB}
的形式获得输出,并希望将所有内容都放在数据帧中
这是一个非常长的字符串示例:
\\n display:block\\u0022\\u003E\\n div class= span_6\\u0022\\u003E\\n li class=\\u0022borderbottom padleft pad20 nomargin\\u0022\\u003E\\n span\\u003E1. XXXXXXXX\\/span\\u003E\\n strong class=\\u0022floatright\\u0022\\u003EAAAAAAAA\\/strong\\u003E\\n \\/li\\u003E\\n li class=\\u0022borderbottom padleft pad20 nomargin\\u0022\\u003E\\n span\\u003E2. YYYYYYYY\\/span\\u003E\\n strong class=\\u0022floatright\\u0022\\u003EBBBBBBBB\\/strong\\u003E\\n
#为清晰起见,采用分块引用:
\n display:block\u0022\u003E\n
div class= span_6\u0022\u003E\n
li class=\u0022borderbottom padleft pad20 nomargin\u0022\u003E\n
span\u003E1. XXXXXXXX\/span\u003E\n
strong class=\u0022floatright\u0022\u003EAAAAAAAA\/strong\u003E\n
\/li\u003E\n
li class=\u0022borderbottom padleft pad20 nomargin\u0022\u003E\n
span\u003E2. YYYYYYYY\/span\u003E\n
strong class=\u0022floatright\u0022\u003EBBBBBBBB\/strong\u003E\n
我正在尝试这样做:
#s = the string
pattern = "u003E\|(.*?)\|\\/strong"
substring = re.search(pattern, s).group(1)
print(substring)
但它失败了。最好的方法是什么
编辑: 预期输出为两个列表:
list1 = ['XXXXXXXX','YYYYYYYY']
list2 = ['AAAAAAAA','BBBBBBBB']
您可以使用以下解决方案:
见online Python demo。首先,该字符串是未转换的,并且正则表达式应用于未转换的输入字符串版本
regex是
详细信息:
>
-a>
字符\d+
-一个或多个数字\.
-一个点\s*
-零个或多个空格([^<>]*)
-组1:除<
和>
之外的零个或多个字符\\/span>
-\/span>
文本\s*
-零个或多个空格[^>]*>
-除>
和>
字符以外的任何零个或多个字符([^<>]*)
-第2组:除<
和>
之外的零个或多个字符\\/strong
-a\/strong>
文本李>相关问题 更多 >
编程相关推荐