![](/img/trans.png)
[英]How can I use a regex to search a PDF for all words within parentheses EXCEPT for a specific set of words?
[英]How Can I search if a Address Set Contains some specific Words
我正在編寫一個程序,其中我必須檢查地址集中的所有地址是否都包含特定的關鍵字-Word:
例如A:
設置組地址“ Private-MT”“ ABCD45-48 / 70-71”
設置組地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD47”
設置組地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD48”
設置組地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD70”
設置組地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD71”
例如B:
設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”
設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD47”
設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD48”
設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ XYCD70”
設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ XYCD71”
在此示例中,地址集名稱為“ ABCD45-48 / 70-71”,因此,在我完全刪除該地址集之前,需要檢查該地址集的所有成員的名稱中都必須包含ABCD。
如果他們那里都有ABCD,則刪除整個地址集
A的輸出:
未設置組地址“ Private-MT”“ ABCD45-48 / 70-71”
否則刪除特定行。
B的輸出:
未設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD47”
未設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD48”
您的問題尚不清楚,但是我會在標題中提出您的問題。 如果您有字符串,並且想搜索子字符串,則只能使用
if substring in string:
#do what you want to do
另一種方法是使用正則表達式,這里的文檔是python
下次請分享您的腳本,以幫助所有人了解您的問題;)
編輯
filename = "test.text"
import re
def splitAddresses(data):
addresses=[]
l=[]
pattern=re.compile("^[GROUP]+[0-9]+[:]$")
for element in data:
isAmatch=pattern.match(element)
if isAmatch==None:
l.append(element)
else:
addresses.append(l)
l=[]
addresses.append(l)
return(addresses[1:])
def parseAddress():
with open(filename) as f:
data = f.readlines()
addresses=splitAddresses(data)
for element in addresses:
prefix=element[0][32:36]
length_data=len(element)
for address in element[1:]:
if address.count(prefix)!=2:
element.remove(address)
new_length = len(element)
if new_length==length_data:
print(element[0])
else:
print(element[1:])
parseAddress()
嘗試過此文件
GROUP1:
set group address "Private-MT" "ABCD45-48/70-71"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD70"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD71"
GROUP2:
set group address "Private-MT" "ABCD45-48/70-71"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"
set group address "Private-MT" "ABCD45-48/70-71" add "XYCD70"
set group address "Private-MT" "ABCD45-48/70-71" add "XYCD71"
輸出為:
set group address "Private-MT" "ABCD45-48/70-71"
['set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"\n', 'set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"\n']
您可以編輯腳本並存儲信息,因為我進行了打印以顯示效果;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.