我正在嘗試創建一個匹配的 Python 正則運算式:
- 字串的開始
- 一行的開始
- 或半冒號
到這里為止,它必須是不消耗字串的。一旦找到上述內容,它就會查找可選的空格,然后是單詞import(被捕獲)。
正則運算式(帶有 mutline 和全域標志 (mg)):
(?<=^|;)\s*(import)
失敗,因為后面的查看必須在 python 中是固定寬度:
import sadfsda; import asdf sdaf
import asdfas dfasdf
注意: [^] 確實回答了這個問題,因為您如何指定符合我要求的固定寬度外觀。這只是許多失敗的嘗試之一。
uj5u.com熱心網友回復:
您可以使用
(?<![^;\n])\s*(import)
請參閱正則運算式演示。詳情:
(?<![^;\n])- 一個否定的lookbehind匹配一個沒有緊跟在a;和換行符(LF,換行符)char之前的位置\s*- 零個或多個空格(import)- 第 1 組:import字串。
\n換行匹配模式是必要的,因為如果否定字符類不是該類的一部分,則匹配換行符,\n因此,只要您想匹配任何行開頭的位置,就可以將其添加到否定字符類中,就像這樣。
請參閱Python 演示:
import re
s='''import sadfsda; import asdf sdaf
import asdfas dfasdf'''
rx = r'(?<![^;\n])\s*(import)'
print( re.sub(rx, r'{{\g<0>}}', s) )
輸出:
{{import}} sadfsda;{{ import}} asdf sdaf
{{import}} asdfas dfasdf
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/432550.html
