Помимо того факта, что регулярное выражение, вероятно, не то, с чем вы хотите это сделать, вы хотите поместить нужный бит в группы в круглых скобках. Если вам нужно все до закрывающего тега </html:whatever>
, то вам нужно что-то вроде этого:
(<html:(button|submit|cancel)[\s\S]*?)</html:(button|submit|cancel)>
Если вам нужен бит <html:button>
, используйте:
(<html:(button|submit|cancel)>)[\s\S]*?</html:(button|submit|cancel)>
, например
от
<html:button>foobar</html:submit>
вы получите:
('<html:button>', 'button', 'submit')
Если вы хотите получить foobar
сверху, используйте:
(<html:(button|submit|cancel)>)([\s\S]*?)</html:(button|submit|cancel)>
чтобы получить:
('<html:button>', 'button', 'foobar', 'submit')
Обратите внимание, что в общем случае невозможно сопоставить открывающий и закрывающий теги (обратите внимание, что <html:button>
открывается, а </html:submit>
закрывается в примере выше). Если вам нужно это сделать, используйте правильный парсер.