Eu tenho esse regex aqui;
\[sometag\](.*)\[/sometag\]
Que deve pegar o texto cercado pela [sometag]
tag. Ele funciona para informações de linha única contidas nessas tags, como na string [sometag]this is a bit of text[/sometag]
. Mas não funciona em texto que se estende por várias linhas, assim;
[sometag] here is more text
it spans more than one line [/sometag]
Por alguma razão, o localizador de regex do texto sublime não reconhecerá as tags em várias linhas. Quero saber se isso é um problema com o Texto Sublime, uma opção alternável ou apenas minha incompetência pessoal com expressões regulares.
regex
tags
sublimetext
Maurdekye
fonte
fonte
?
after*
fará uma partida não gananciosa. Considere[b]foo[/b]foo[b]bar[/b]
como exemplo.\[b\].*\[\/b\]
corresponderia ao todo desde o início b até o último fechamento b.?
neste regex101.com/r/gI0xC3/2Se a modificação do modo de ponto for inadmissível por alguns motivos, você pode:
fonte
(.|\n)+?
se você tiver acesso ao modificador DOTALL. Se você não pode usar(?s)
em algum falvor, use[\s\S]
/[\d\D]
/[\w\W]
, mas não o padrão de alternância sugerido aqui. Esse padrão é altamente ineficiente e pode facilmente levar a um problema de tempo limite.[\s\S]
, mas de relance(.|\n)
parece equivalente? Tem a ver com grupos correspondentes? Mas então(?:.|\n)
seria o mesmo?