Ich habe diesen regulären Ausdruck hier;
\[sometag\](.*)\[/sometag\]
Welches soll Text fangen, der von dem [sometag]
Tag umgeben ist. Es funktioniert für einzeilige Informationen, die in diesen Tags enthalten sind, wie in der Zeichenfolge [sometag]this is a bit of text[/sometag]
. Bei Text, der mehrere Zeilen umfasst, funktioniert dies jedoch nicht.
[sometag] here is more text
it spans more than one line [/sometag]
Aus irgendeinem Grund erkennt der Regex-Finder von Sublime Text die Tags nicht über mehrere Zeilen hinweg. Ich möchte wissen, ob dies ein Problem mit Sublime Text, eine umschaltbare Option oder nur meine persönliche Inkompetenz mit regulären Ausdrücken ist.
regex
tags
sublimetext
Maurdekye
quelle
quelle
?
danach*
wird ein nicht gieriges Match machen. Betrachten Sie[b]foo[/b]foo[b]bar[/b]
als Beispiel.\[b\].*\[\/b\]
würde das Ganze vom Start b bis zum letzten Abschluss b zusammenbringen.?
in diesem regex101.com/r/gI0xC3/2Wenn das Ändern des Punktmodus aus bestimmten Gründen unzulässig ist, können Sie Folgendes annehmen:
quelle
(.|\n)+?
Sie diese Option niemals, wenn Sie Zugriff auf den Modifikator DOTALL haben. Wenn Sie(?s)
in einem Falvor nicht verwenden können, verwenden Sie[\s\S]
/[\d\D]
/[\w\W]
, aber nicht das hier vorgeschlagene Wechselmuster. Dieses Muster ist sehr ineffizient und kann leicht zu einem Timeout-Problem führen.[\s\S]
, aber auf den ersten Blick(.|\n)
scheint gleichwertig? Hat es mit passenden Gruppen zu tun? Aber(?:.|\n)
wäre dann das gleiche?