Python 字母后跟空格和引号的正则表达式(";)
我正在迭代JSON对象列表,希望找到每个字母后面都跟一个空格和一个引号,以便: 匹配: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
“这里有些词”
不匹配:
“这里有些词”
这是我正在尝试的,但它不起作用:
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)
Tryr'\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=' '>