web-dev-qa-db-fra.com

Les regex textuels sublimes ne détectent pas les balises multilignes

J'ai cette regex ici;

\[sometag\](.*)\[/sometag\]

Qui est supposé attraper le texte entouré par le [sometag] tag. Cela fonctionne pour les informations sur une seule ligne contenues dans ces balises, comme sur la chaîne [sometag]this is a bit of text[/sometag]. Mais cela ne fonctionne pas sur un texte s'étendant sur plusieurs lignes, comme ceci;

[sometag] here is more text

it spans more than one line [/sometag]

Pour une raison quelconque, regex Finder de Sublime Text ne reconnaît pas les balises sur plusieurs lignes. Je veux savoir s’il s’agit d’un problème avec Sublime Text, d’une option interchangeable ou tout simplement de mon incompétence personnelle avec les regex.

103
Maurdekye

Au début, utilisez un modificateur dotall (?s) pour que les points correspondent aux caractères de nouvelle ligne.

(?s)\[sometag\](.*?)\[\/sometag\]

DÉMO

200
Avinash Raj

Si la modification du mode de point est inadmissible pour certaines raisons, vous pouvez prendre ceci:

[sometag](.|\n)+?[/sometag]
9
SynCap