括号匹配最少添加python

Python06

括号匹配最少添加python,第1张

括号匹配最少添加python可以通过使用Python的栈数据结构来实现,代码如下:

```

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')