Python 字母后跟空格和引号的正则表达式(";)

Python 字母后跟空格和引号的正则表达式(";),python,Python,我正在迭代JSON对象列表,希望找到每个字母后面都跟一个空格和一个引号,以便: 匹配: “这里有些词” 不匹配: “这里有些词” 这是我正在尝试的,但它不起作用: for i in range (len(json_list)): m = re.search('(?=[a-z])(*\s)(?=\")', json_list[i]) print (m.group(0)) 未能做到这一点: Traceback (most recent call last): File "a

我正在迭代JSON对象列表,希望找到每个字母后面都跟一个空格和一个引号,以便:

匹配:
“这里有些词”

不匹配:
“这里有些词”

这是我正在尝试的,但它不起作用:

for i in range (len(json_list)):
     m = re.search('(?=[a-z])(*\s)(?=\")', json_list[i])
     print (m.group(0))
未能做到这一点:

Traceback (most recent call last):
  File "api_extraspace.py", line 13, in <module>
    print (m.group(0))
AttributeError: 'NoneType' object has no attribute 'group'
回溯(最近一次呼叫最后一次):
文件“api_extraspace.py”,第13行,在
打印(m.group(0))
AttributeError:“非类型”对象没有属性“组”
  • 您的查找缺少小于号:
    (?=[a-z])
    ->
    (?)?
    
  • 您的查找缺少小于号:
    (?=[a-z])
    ->
    (?
    (*\s)
    应该是什么意思?如果正则表达式不匹配,
    re.search()
    返回
    。在尝试使用
    m.group(0)
    尝试
    r'\w+\s之前,您需要检查这一点*“
    @geckos
    \w
    匹配数字和下划线,而不仅仅是字母。所以
    ([a-z]+\s*)”
    !?什么是
    (*\s)
    应该是什么意思?如果正则表达式不匹配,
    re.search()
    返回
    None
    。您需要在尝试使用
    m.group(0)
    Try
    r'\w+\s*之前检查这一点。”“
    @geckos
    \w
    匹配数字和下划线,而不仅仅是字母。所以
    ([a-z]+\s*)”
    !?从评论来看,他似乎最终想要做
    re.sub()
    删除空格,所以这比我使用捕获组的回答要好。@Barmar哦,你不需要到处寻找
    re.sub
    !你可以使用捕获组,比如
    re.sub(r'([a-z])\s+(“”),r'\1\2',…)
    。顺便说一句,我认为你的回答从另一个角度来看是有用的。是的,但是环顾四周会让问题变得更清楚。从评论来看,他似乎最终想要做
    re.sub()
    删除空格,所以这比我用捕获组的答案要好。@Barmar哦,你不需要到处寻找
    re.sub
    !你可以使用捕获组,比如
    re.sub(r'([a-z])\s+(“”),r'\1\2',…)
    。顺便说一句,我认为你的答案作为另一个角度是有用的。是的,但是环顾使它更清晰。
    import re
    for s in ['"Some words here"', '"Some words here "']:
        m = re.search('(?<=[a-z])\s+(?=")', s)
        print(repr(s), m)
    
    '"Some words here"' None
    '"Some words here "' <_sre.SRE_Match object; span=(16, 17), match=' '>