Обычно вы можете использовать разные подходы:
- использовать ленивые квантификаторы
.*?
вместо.*
- исключить символы, если вы можете найти их, появляющихся только при закрытии
[^{]*
или[^\]
вместо.*
У меня есть LaTeX
код, который выглядит так:
--- text might be here --- $\begin k & l & m \\ x & y & z \end$ --- text might be here --- $\begin k & l & m \\ x & y & z \end$ --- text might be here --- $\begin k & l & m \\ x & y & z \end$ --- text might be here ---
Я создал это, regex
чтобы захватить каждую из cases
сред:
\\begin\((\s*.*\s*)*)\\end\
Случилось так, что он совпал с начала \begin
до последнего \end
, а мне нужно, чтобы он соответствовал каждой среде независимо, то есть совпадал с первой \end
после каждого \begin
совпадения.
Обратите внимание, что пробелы, переносы строк и табуляции не являются необходимыми и могут не всегда присутствовать.
Обычно вы можете использовать разные подходы:
.*?
вместо .*
[^{]*
или [^\]
вместо.*