簡體   English   中英

Python:用於匹配 C 代碼中的多行字符串的正則表達式

[英]Python: Regex to match multiline strings in C code

我試圖通過re模塊匹配 C 代碼中的多行字符串。

我想匹配以下形式的字符串:

char * theString = "Some string \
                   I want to match.";

我嘗試了以下正則表達式,但它不起作用:

regex = re.compile(r"\".*\"$", re.MULTILINE)

我以為它會匹配第一個“,然后繼續搜索下一行,直到找到一個結束的”,但事實並非如此。 這是因為 $ 要求在行尾有一個 " 來匹配嗎?有沒有辦法使用正則表達式來做到這一點?

使用點所有標志。

然而,這是解析 C 字符串的方式。 (?s)"[^"\\]*(?:\\.[^"\\]*)*"

如果它不支持(?s)內聯修飾符,請在 flags 參數中設置修飾符。

re.compile(r'"[^"\\]*(?:\\.[^"\\]*)*"', re.DOTALL)

 (?s)
 "
 [^"\\]*                       # Double quoted text
 (?: \\ . [^"\\]* )*
 "

理想情況下,您應該在開頭添加 (raw regex) (?<?\\)(::\\\\)*
確保不轉義開頭的雙引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM