Python:在多个CSS选择器的复杂列表上使用正则表达式来提取它们的#和。标签

时间:2018-04-19 22:45:27

标签: python regex

是否有更简单的方法来检查字符串是否与特定模式匹配并从该模式中检索该组?

我想查看带有{readlines}的文件并收集引号之间有任何内容的行:

 **{**

 **"simpleSelectors": [**

 "*",**

如果这些是我文件中的行,我的列表应该包含[' simpleSelectors',' *']

regexline = re.compile('\"(.*)\"')
for i in css:
    if re.search(regexline, i):
        x = re.search(regexline, i)
        inputs.append(x.group(1))

2 个答案:

答案 0 :(得分:2)

您可以使用以下所有行使用re.findall:

matches = re.findall(regexline, css)

答案 1 :(得分:2)

您不需要遍历每一行。并且无需逃避正则表达式中的引号:

import re

css='{\n\n"simpleSelectors": [\n\n"*",'

inputs = []
regexline = re.compile('"(.*)"')
matches = re.findall(regexline, css)
print( matches) # ['simpleSelectors', '*']

修改 要细分您的比赛,请使用

matches = [item for match in re.findall(regexline, css) for item in match.split()]