[英]Regex to capture LaTeX comments
我正在嘗試編寫一個正則表達式來在 LaTeX 中查找注釋行。 我創建了以下示例。 最后一個正則表達式不起作用。 我可以為所有情況使用一個正則表達式嗎?
前:
\usepackage{test}%COMMENT1
TEXT
%COMMENT2
TEXT
Value is 10\%, this should not be removed. %COMMENT3
begin{tikz}[
important 1,
%COMMENT4
important 2, %COMMENT5
]
TEXT
%COMMENT 6
TEXT
Table: value1&value2\\%COMMENT7
后:
\usepackage{test}
TEXT
TEXT
Value is 10\%, this should not be removed.
begin{tikz}[
important 1,
important 2,
]
TEXT
TEXT
Table: value1&value2\\
這是我到目前為止所達到的:
(^%(.*?)\\r?\\n)
不替換任何內容時適用於評論 2,4,6
([\\]{2}%(.*?)\\r\\n)
當用 \\\\\\r\\n 替換時,這適用於注釋 7
([^\\]%(.*?)\\r?\\n)
這不適用於注釋 1,因為它選擇了“}”
您可以使用
Regex.Replace(s, @"(?m)(?<=(?<!\\)(?:\\{2})*)%.*(?:\r?\n(?!\r?$))?", "")
查看正則表達式演示
細節
(?m)
- RegexOptions.Multiline
內聯選項, $
也將在換行符之前匹配。(?<=(?<!\\\\)(?:\\\\{2})*)
- 任何偶數數量的反斜杠,它是一個正后視匹配的位置,它不是緊跟在\\
前面,然后是任何 0 或更多重復的雙反斜杠%
- %
符號.*
- 除 LF 之外的任何 0+ 字符,盡可能多(?:\\r?\\n(?!\\r?$))?
- 一個可選的非捕獲組匹配
\\r?\\n
- 一個可選的 CR,然后是 LF...(?!\\r?$)
- 不緊跟可選的 CR 和行尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.