![](/img/trans.png)
[英]Python's regex .match() function works inconsistently with multiline strings
[英]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.