我有下一個正則運算式:
comment_pattern = "(/\*[\w\W]*\*/)"
有了它,我可以像下面這樣搜索匹配字串:
/*
blablabla example
blabla
*/
基本上我還想在這些注釋中搜索變數 Compiler_Warning -> 以防它在多行注釋中以獲取所有運算式 -> 有人能告訴我如何獲取它嗎?基本上我的正則運算式應該回傳一個匹配項:
/* blabla
Compiler_Warning blablalba
*/
但不是第一個例子。
uj5u.com熱心網友回復:
嘗試(正則運算式演示):
import re
text = """\
/*
blablabla example
blabla
*/
Not comment
/* blabla
Compiler_Warning blablalba
*/"""
pat = re.compile(r"/\*(?=(?:(?!\*/).)*?Compiler_Warning).*?\*/", flags=re.S)
for comment in pat.findall(text):
print(comment)
印刷:
/* blabla
Compiler_Warning blablalba
*/
uj5u.com熱心網友回復:
如果您不想在示例的開始和結束之間進行交叉/*匹配*/:
(?s)/\*(?:(?!\*/|/\*).)*?\bCompiler_Warning\b(?:(?!\*/|/\*).)*\*/
解釋
(?s)使點也匹配換行符的行內修飾符/\*匹配/*(?:(?!\*/|/\*).)*?匹配任何字符,如果后面沒有直接跟*/or/*\bCompiler_Warning\b在單詞邊界之間逐字匹配(?:(?!\*/|/\*).)*匹配任何字符,如果后面沒有直接跟*/or/*\*/匹配*/
查看正則運算式演示和Python 演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/533752.html
標籤:Python正则表达式
上一篇:去掉域名末尾的`-`字符
