```
def isValid(string):
stack = []
for char in string:
if char == '(':
stack.append(char)
elif char == ')':
if len(stack) == 0:
return False
stack.pop()
return len(stack) == 0
```
把imgMatchs改成imgMatchs = re.finditer(r'\[.+?\]', s)可以得出:
(3, 6)
(14, 17)
rre = re.compile(r'(.+?)(\[.+?\])(.+?)(\[.+?\])(.+)')
rre.findall(s)
可以得到
[('fds', '[d]', 'fsfsdafd', '[c]', 'safdsfsd')]
转换一下就可以满足要求了。
这样的问题应该使用DOM模块处理,而不是用正则表达式。即使用正则表达式,也不要将所有内容写在一个正则表达式里。如果你一定要写成一个正则表达式可以按如下实现:
jpg_url = r'<img ((?!.*data-origin=)src="(?P<src>.*?)"|.*data-origin="(?P<data>.*?)").*?/>'m = re.match(jpg_url, str(img))
if m:
res = m.group('src') if m.group('src') else m.group('data')
print(res)
else:
print('no match')