2014-01-20 5 views
0

Мне нужно регулярное выражение, которое вернет следующие строковые данные (выделены жирным шрифтом) из следующих сценариев LaTeX.Regex для получения данных из строки LaTeX

  1. данных между последним & и \end

     
    \begin{pmatrix}?&?\\?&?\\?&1+{\sqrt[3]{x}}\end{pmatrix} 
    
  2. данных между matrix} и \end

     
    \begin{bmatrix}1+{\sqrt[3]{x}}\end{bmatrix} 
    
  3. данных между \\ и \end

     
    \begin{bmatrix}?\\1+2\end{bmatrix} 
    

Учитывая эту строку

 
\begin{pmatrix}?&?\\?&?\\?&1+{\sqrt[3]{x}}\end{pmatrix}\begin{bmatrix}1+{\sqrt[3]{x}}\end{bmatrix}\begin{bmatrix}?\\1+2\end{bmatrix} 

Я хочу, чтобы соответствовать этим:

  1. 1+{\sqrt[3]{x}}
  2. 1+{\sqrt[3]{x}}
  3. 1+2
+0

В чем вопрос? Вы хотите получить последнее (самое нижнее) содержимое ячейки каждой матрицы в строке? Кстати, почему вы удалили регулярное выражение, которое вы пробовали? – Palec

ответ

0

Пример 1 с использованием sed

sed 's/\&\(.*\)\\end{pmatrix}/\1/' 

Вы должны быть в состоянии получить остальные оттуда.

Смежные вопросы