簡體   English   中英

正則表達式以匹配所有出現的段落

[英]Regex to match all occurrences of paragraph

語言: python

我正在嘗試匹配本段中所有出現的內容,並將其從文件中刪除。

我不知道如何做正則表達式。

正則表達式,這是行不通的

^#--- Maintenance ---#[\s\S]*[^#--- Maintenance ---#]

代碼是什么樣的

#--- Maintenance ---#
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /home/fuelvnga/public_html/.htpasswd
Require valid-user
#--- Maintenance ---#

fsadfdsaf
dsaf
dsaf
sdaf
sda
fsa
f

#--- Maintenance ---#
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /home/fuelvnga/public_html/.htpasswd
Require valid-user
#--- Maintenance ---#


sdf safd sad

      #--- Maintenance ---#
      AuthType Basic
      AuthName "Restricted Content"
      AuthUserFile /home/fuelvnga/public_html/.htpasswd
      Require valid-user
      #--- Maintenance ---#

我需要突出顯示以下所有實例,即使它具有縮進和其他怪異的東西。

我想對評論進行正則表達式,因為中間的內容可以更改

#--- Maintenance ---#
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /home/fuelvnga/public_html/.htpasswd
Require valid-user
#--- Maintenance ---#

采用

re.sub(r"#--- Maintenance ---#(?:.*?)#--- Maintenance ---#", "",text,0, flags=re.M|re.S)

這會將匹配項替換為"" 匹配是根據您的注釋#--- Maintenance ---##--- Maintenance ---#以及它們之間的任何字符(非貪婪方式)開始/停止的。

技巧是給標記re.DOTALL (short: re.Sre.S點,也使點與換行符匹配。 非貪心僅在兩個注釋之間匹配而不在第一個注釋的開始和最后一個注釋的末尾之間不跨越所有文本很重要。

在代碼中,我保留了多行標志,但是此正則表達式不需要。

import re

text = """
#--- Maintenance ---#
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /home/fuelvnga/public_html/.htpasswd
Require valid-user
#--- Maintenance ---#

fsadfdsaf
dsaf
dsaf
sdaf
sda
fsa
f

#--- Maintenance ---#
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /home/fuelvnga/public_html/.htpasswd
Require valid-user
#--- Maintenance ---#


sdf safd sad

      #--- Maintenance ---#
      AuthType Basic
      AuthName "Restricted Content"
      AuthUserFile /home/fuelvnga/public_html/.htpasswd
      Require valid-user
      #--- Maintenance ---#

"""

matsch = re.sub(r"#--- Maintenance ---#(?:.*?)#--- Maintenance ---#", "",text,0, flags=re.M|re.S)
print (matsch)

u使用非貪心匹配,該匹配應匹配兩個維護塊之間的任何內容。

輸出:

fsadfdsaf
dsaf
dsaf
sdaf
sda
fsa
f




sdf safd sad

暫無
暫無

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

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